在 Android 上测试 EditText 视图是否没有使用 Espresso 设置的错误文本?
Test if an EditText view has no error text set with Espresso on Android?
我知道如何测试 EditText
中是否设置了错误文本:
editText.check(matches(hasErrorText("")));
现在我想测试 EditText
是否没有设置错误文本。我已经试过了,但它不起作用。
editText.check((matches(not(hasErrorText("")))));
有人知道怎么做吗?谢谢!
我认为这不可能,具体取决于您想要什么,我会使用自定义匹配器:
public static Matcher<View> hasNoErrorText() {
return new BoundedMatcher<View, EditText>(EditText.class) {
@Override
public void describeTo(Description description) {
description.appendText("has no error text: ");
}
@Override
protected boolean matchesSafely(EditText view) {
return view.getError() == null;
}
};
}
这个匹配器可以检查 EditText 是否没有设置任何错误文本,像这样使用它:
onView(allOf(withId(R.id.edittext), isDisplayed())).check(matches(hasNoErrorText()));
我知道如何测试 EditText
中是否设置了错误文本:
editText.check(matches(hasErrorText("")));
现在我想测试 EditText
是否没有设置错误文本。我已经试过了,但它不起作用。
editText.check((matches(not(hasErrorText("")))));
有人知道怎么做吗?谢谢!
我认为这不可能,具体取决于您想要什么,我会使用自定义匹配器:
public static Matcher<View> hasNoErrorText() {
return new BoundedMatcher<View, EditText>(EditText.class) {
@Override
public void describeTo(Description description) {
description.appendText("has no error text: ");
}
@Override
protected boolean matchesSafely(EditText view) {
return view.getError() == null;
}
};
}
这个匹配器可以检查 EditText 是否没有设置任何错误文本,像这样使用它:
onView(allOf(withId(R.id.edittext), isDisplayed())).check(matches(hasNoErrorText()));