android - 在 Android 上使用 Espresso 测试 EditText View 是否没有设置错误文本?

标签 android testing android-espresso

我知道如何测试是否在 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()));

关于android - 在 Android 上使用 Espresso 测试 EditText View 是否没有设置错误文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42668617/

相关文章:

Android Q RecoverableSecurityException 不授予访问权限

android - 如何给 fragment 一个对话框的外观?

java - 是否可以跳过 dbunit 中的验证列名称

用于回归测试的 Perl 辅助工具

unit-testing - Microsoft 的 Entity Framework 如何抑制测试驱动开发?

java - 链接谷歌播放服务后,Eclipse 崩溃并超出 GC 开销限制

java - Android 蓝牙 Intent

android - 使用 SpeechRecognizer API 对 editText 进行语音输入的 Espresso 测试

Android Test Orchestrator 无法与 Android X 配合使用

Android Espresso Intents 测试随机失败, `` init() 必须在使用此方法之前调用``