수색…


TextView 테스트를위한 사용자 정의 matcher 예제 오류 메시지

  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 필드의 하위 집합을 TextView 합니다. describeTo 메소드는 디버그 출력에 사용됩니다.

  1. 그런 다음 아래와 같이 테스트 케이스에서 사용자 정의 matcher를 사용할 수 있습니다.
@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