Поиск…


Пример пользовательского совпадения для тестирования сообщения об ошибке TextView

  1. Создайте имя класса ErrorMatcher внутри тестового пакета с помощью кода ниже:
public class ErrorMatcher {

    @NonNull
    public static Matcher<View> withError(final String expectedErrorText) {
        Checks.checkNotNull(expectedErrorText);
        return new BoundedMatcher<View, TextView>(TextView.class) {    
            @Override
            public void describeTo(final Description description) {
                description.appendText("error text: ");
                stringMatcher.describeTo(description);
            }
                
            @Override
            public boolean matchesSafely(final TextView textView) {
                return expectedErrorText.equals(textView.getError().toString());
            }
        };
    }
}

Логика соответствия - это найти элемент TextView , текст сообщения об ошибке которого соответствует ожидаемому значению текстового значения ошибки, проходя через поднабор полей TextView присутствующих в иерархии компоновки. describeTo метод используется для вывода отладки.

  1. Затем вы можете использовать свой пользовательский матчи в тестовом примере, как показано ниже:
@Test  
public void verifiesSignInErrorIsShown() {
    onView(withId(R.id.email_sign_in_button)).perform(click());
    onView(ErrorMatcher.withError("Your error text")).check(matches(isDisplayed()));
}


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow