fer*_*beb 5 android hamcrest android-espresso
以下语句不起作用,因为doesNotExist()返回的是一个ViewAssertion而不是匹配器。有try-catch什么办法让它在没有?
.check(either(matches(doesNotExist())).or(matches(not(isDisplayed()))));
Run Code Online (Sandbox Code Playgroud)
小智 8
如果要检查层次结构中是否不存在视图,请使用以下断言。
ViewInteraction.check(doesNotExist());
Run Code Online (Sandbox Code Playgroud)
如果要检查层次结构中是否存在视图但未向用户显示,请使用以下断言。
ViewInteraction.check(matches(not(isDisplayed())));
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
我遇到了同样的问题,我的一个视图最初不会有特定的视图,但可以添加它并稍后隐藏它。UI 处于哪种状态取决于后台活动是否被破坏。
我最终只是编写了 doesNotExist 实现的一个变体:
public class ViewAssertions {
public static ViewAssertion doesNotExistOrGone() {
return new ViewAssertion() {
@Override
public void check(View view, NoMatchingViewException noView) {
if (view != null && view.getVisibility() != View.GONE) {
assertThat("View is present in the hierarchy and not GONE: "
+ HumanReadables.describe(view), true, is(false));
}
}
};
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7472 次 |
| 最近记录: |