Android 意式浓缩咖啡:在adapterView中插入字符串
如果listAdapter的一个或多个项目中显示字符串,是否可以使用android espresso验证ist 尝试这样的事情:Android 意式浓缩咖啡:在adapterView中插入字符串,android,testing,android-espresso,Android,Testing,Android Espresso,如果listAdapter的一个或多个项目中显示字符串,是否可以使用android espresso验证ist 尝试这样的事情: onData(anything()).inAdapterView(withId(R.id.test)).check(matches(hasToString("Anmeldung steht noch aus!"))); 这必须有效,但仅基于列表项位置: onData(instanceOf(YourListItem.class)) .inAdapterView(w
onData(anything()).inAdapterView(withId(R.id.test)).check(matches(hasToString("Anmeldung steht noch aus!")));
这必须有效,但仅基于列表项位置:
onData(instanceOf(YourListItem.class))
.inAdapterView(withId(R.id.test))
.atPosition(0)
.check(matches(hasDescendant(withText("Anmeldung steht noch aus!"))));
如果要检查适配器中的某个位置是否存在唯一文本,则应创建自己的匹配器,因此,它类似于:
onData(withYourListItemText("Anmeldung steht noch aus!"))
.inAdapterView(withId(R.id.test))
.check(matches(isDisplayed()));
和匹配器:
public static Matcher<Object> withYourListItemText(final Matcher<String> yourListItemText) {
Checks.checkNotNull(yourListItemText);
return new BoundedMatcher<Object, YourListItem>(YourListItem.class) {
@Override
public boolean matchesSafely(YourListItem item) {
return yourListItemText.matches(item.getYourItemText());
}
@Override
public void describeTo(Description description) {
description.appendText("with text: " + yourListItemText.toString());
yourListItemText.describeTo(description);
}
};
}
带有yourListItemText的公共静态匹配器(最终匹配器yourListItemText){
Checks.checkNotNull(yourListItemText);
返回新的BoundedMatcher(YourListItem.class){
@凌驾
公共布尔匹配安全(YourListItem){
返回yourListItemText.matches(item.getyourtitemtext());
}
@凌驾
公共无效说明(说明){
description.appendText(“带文本:+yourListItemText.toString());
yourListItemText.descripbeto(description);
}
};
}
这必须有效,但仅基于列表项的位置:
onData(instanceOf(YourListItem.class))
.inAdapterView(withId(R.id.test))
.atPosition(0)
.check(matches(hasDescendant(withText("Anmeldung steht noch aus!"))));
如果要检查适配器中的某个位置是否存在唯一文本,则应创建自己的匹配器,因此,它类似于:
onData(withYourListItemText("Anmeldung steht noch aus!"))
.inAdapterView(withId(R.id.test))
.check(matches(isDisplayed()));
和匹配器:
public static Matcher<Object> withYourListItemText(final Matcher<String> yourListItemText) {
Checks.checkNotNull(yourListItemText);
return new BoundedMatcher<Object, YourListItem>(YourListItem.class) {
@Override
public boolean matchesSafely(YourListItem item) {
return yourListItemText.matches(item.getYourItemText());
}
@Override
public void describeTo(Description description) {
description.appendText("with text: " + yourListItemText.toString());
yourListItemText.describeTo(description);
}
};
}
带有yourListItemText的公共静态匹配器(最终匹配器yourListItemText){
Checks.checkNotNull(yourListItemText);
返回新的BoundedMatcher(YourListItem.class){
@凌驾
公共布尔匹配安全(YourListItem){
返回yourListItemText.matches(item.getyourtitemtext());
}
@凌驾
公共无效说明(说明){
description.appendText(“带文本:+yourListItemText.toString());
yourListItemText.descripbeto(description);
}
};
}
您的意思是整个列表项与测试字符串匹配?是的,我想检查是否至少有一项包含此字符串。您的意思是整个列表项与测试字符串匹配?是的,我想检查是否至少有一项包含此字符串。