반응형
match (not (isDisplayed ()))가 NoMatchingViewException으로 실패합니다.
UI보기가 없는지 테스트하려고합니다. 보기 선택기는 다음과 같습니다.
public static ViewInteraction onMyTestUi() {
return onView(withId(R.id.myTestId));
}
선택기는보기가 표시되는지 확인하는 데 문제가 없지만보기가 표시되지 않는 경우 오류가 발생합니다. 다음과 같이 사용하고 있습니다.
onMyTestUi().check(matches(not(isDisplayed())));
하지만 다음과 같은 오류가 발생합니다.
com.google.android.apps.common.testing.ui.espresso.NoMatchingViewException : 일치하는 계층 구조에보기 없음 : ID 포함 : is 대상보기가보기 계층 구조의 일부가 아닌 경우 Espresso.onData를 사용하여 다음 AdapterViews : android.widget.ListView {...} 중 하나에서로드합니다.
이건 이상해. UI가 없는지 확인 중이며이 뷰를 찾을 수 없을 것으로 예상됩니다. 그렇다면 Espresso에서 오류가 발생하는 이유는 무엇입니까? 여기서 무엇이 잘못 될 수 있는지 제안하십시오.
감사합니다, 놀랐습니다!
doesNotExist()대신 사용해야 합니다. 여기 에서 찾았 습니다 .
또한 귀하의 방법으로 작업하지만 다음과 같습니다.
onView(withId(R.id.next)).check(matches(not(isDisplayed())));
onView(withText("")).check(doesNotExist());
View가 보이지 않거나 존재하지 않는지 확인하려는 경우 .
public static ViewAssertion isNotDisplayed() {
return new ViewAssertion() {
@Override
public void check(View view, NoMatchingViewException noView) {
if (view != null && isDisplayed().matches(view)) {
throw new AssertionError("View is present in the hierarchy and Displayed: "
+ HumanReadables.describe(view));
}
}
};
}
용법:
onView(withId(R.id.someView)).check(isNotDisplayed());
"withEffectiveVisibility"보기 가시성을 확인하면이 옵션을 시도 할 수 있습니다.
onViewWithId(R.id.YOURVIEW).check(matches(ViewMatchers.withEffectiveVisibility(ViewMatchers.Visibility.GONE)))
반응형
'program story' 카테고리의 다른 글
| TextView의 문자 수를 제한 할 수 있습니까? (0) | 2020.11.07 |
|---|---|
| 큰 xlsx 파일을 R로 가져 오시겠습니까? (0) | 2020.11.07 |
| Android Studio-gradle-diagnostics-XXXjar의 Gradle 동기화 오류 (0) | 2020.11.07 |
| MySQL에서 수백만 개의 행 삭제 (0) | 2020.11.07 |
| Java, 현재 디렉토리에서 파일을 읽습니까? (0) | 2020.11.07 |