我试图测试缺少UI视图.视图选择器如下:
public static ViewInteraction onMyTestUi() {
return onView(withId(R.id.myTestId));
}
Run Code Online (Sandbox Code Playgroud)
选择器可以正常检查是否显示视图,但在检查视图是否未显示时出错.我使用如下:
onMyTestUi().check(matches(not(isDisplayed())));
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
com.google.android.apps.common.testing.ui.espresso.NoMatchingViewException:找不到层次结构中的视图匹配:with id:is如果目标视图不是视图层次结构的一部分,则可能需要使用Espresso.onData从以下AdapterViews之一加载它:android.widget.ListView {...}
这很奇怪.我正在检查UI的缺失,并且预计将无法找到此视图.那为什么Espresso会抛出错误呢?请在这里建议可能出现的问题.
谢谢,惊讶!
use*_*316 138
需要doesNotExist()改用.在这里找到.
Mor*_*zov 13
也可以使用你的方法,但是这样的事情:
onView(withId(R.id.next)).check(matches(not(isDisplayed())));
Run Code Online (Sandbox Code Playgroud)
小智 12
onView(withText("")).check(doesNotExist());
Run Code Online (Sandbox Code Playgroud)
Pab*_*bel 10
如果您检查视图可见性“withEffectiveVisibility”,您可以尝试此选项
onView(withId(R.id.YOURVIEW)).check(matches(ViewMatchers.withEffectiveVisibility(ViewMatchers.Visibility.GONE)))
Run Code Online (Sandbox Code Playgroud)
如果您想检查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));
}
}
};
}
Run Code Online (Sandbox Code Playgroud)
用法:
onView(withId(R.id.someView)).check(isNotDisplayed());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33006 次 |
| 最近记录: |