Android:Espresso,找不到与

时间:2017-01-21 13:32:02

标签: android testing android-espresso

我正在测试我的活动中的片段的启动,所以在执行点击按钮以启动片段之后,我在启动片段内的视图上测试了现有的文本,但是测试失败了该片段在我的手机上启动,甚至在视图层次结构中显示文本存在:

View Hierarchy:

+--------->AppCompatTextView{id=2131886318, res-name=text3_textView, visibility=VISIBLE, width=768, height=68, 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=0.0, y=695.0, text=Pour finaliser votre inscription nous avons besion
d'une photo de profil, input-type=0, ime-target=false, has-links=false}

测试失败了:

onView(withText("photo de profil")).check(matches(isDisplayed()));

我想知道为什么espresso失败了这个测试,是因为它不等待片段的发布?

顺便说一句,我关闭了动画。

2 个答案:

答案 0 :(得分:5)

espresso withText方法匹配所有字符串相等。

在您的情况下,如果字符串以字符串结尾,则需要匹配。

您的代码应为:

onView(withText(endsWith("photo de profil"))).check(matches(isDisplayed()));

这里有更多示例:http://qathread.blogspot.com.br/2014/01/discovering-espresso-for-android.html

答案 1 :(得分:0)

我在做什么:

    @Rule
    @JvmField
    var mActivityTestRule = ActivityTestRule(SplashScreenActivity::class.java)

由于此规则, Espresso库正在EditText上搜索登录SplashScreenActivity视图。可悲的是,该登录EditText视图实际上出现在LoginActivity中,结果是测试用例因上述错误而失败。

我为使一切正常工作所做的事情:

    @Rule
    @JvmField
    var mActivityTestRule = ActivityTestRule(LoginActivity::class.java)

按照上述规则,我将ActivitySplashScreenActivity更改为LoginActivity Espresso 轻松找到了此登录EditText视图并通过了所有测试。

只需确保将 Espresso 指向正确的Activity所在的正确Fragment / View