我的代码片段如下所示:
private void SelectOnline(String env) {
onView(withText("Some Text")).perform(click());
if (onView(withText(env)).check(matches(isChecked()))) {
onView(withId(R.id.dialogCancel)).perform(click());
}else {
onView(withText(env)).perform(click());
}
}
我收到错误消息
required: boolean
found: ViewInteraction
这意味着您不能将espresso View Matchers用作if..else的条件。是否有其他方法来实现if..else语句?
答案 0 :(得分:9)
Espresso的设计是为了阻止开发者使用条件,因此没有官方支持的方法来实现这一点。
但是,你可以尝试一些黑客攻击。我使用try / catch语句。在你的情况下,它将是:
private void SelectTransitBackendOnline(String env) {
onView(withText("Some Text")).perform(click());
try {
onView(withText(env)).check(matches(isChecked())))
onView(withId(R.id.dialogCancel)).perform(click());
} catch (AssertionFailedError e) {
onView(withText(env)).perform(click());
}
}
答案 1 :(得分:1)
根据您在try块中的操作,更改catch块的异常。我想单击cancel_button(如果存在),因此将其更改为:
\DB::table('child_table')->where('parent_id', $parent->id)->update(['parent_id' => null]);