正如标题所述,有时它会失败,而有时它会成功。
android.support.test.espresso.base.DefaultFailureHandler$AssertionFailedWithCauseError: 'is displayed on the screen to the user' doesn't match the selected view.
Expected: is displayed on the screen to the user
Got: "AppCompatTextView{id=2131492981, res-name=snackbar_text, visibility=VISIBLE, width=444, height=71, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=18.0, y=0.0, text=Network Error, input-type=0, ime-target=false, has-links=false}"
堆栈跟踪的第一行表明espresso无法在屏幕上看到Snackbar。但是第二行说明它实际上看到了一个Snackbar,visibility=VISIBLE
,text=Network Error
,这是正确的。
我很困惑,发生了什么?
这是我的测试代码:
activityRule.launchActivity(new Intent());
onView(withText("Network Error")).check(matches(isDisplayed()));
PS:当我运行整个测试套件时,它通常会失败;但有时候仅运行这个测试也会失败。其他一些时候,测试通过了,但没有任何模式,似乎是随机的。