以下语句不起作用,因为doesNotExist()
返回的是ViewAssertion
而不是匹配器。有没有办法让它在没有try-catch
的情况下工作?
.check(either(matches(doesNotExist())).or(matches(not(isDisplayed()))));
最佳答案
我有同样的问题,我的一个视图最初不会有一个特定的视图,但可以添加它并在以后隐藏它。用户界面处于哪个状态取决于背景活动是否被破坏。
最后我写了一个关于实干家实现的变体:
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));
}
}
};
}
}