onView(allOf(withId(R.id.login_card_view), isDisplayed()))和check(matches(isDisplayed()))之间的区别

3

1. ViewInteraction v = onView(allOf(withId(R.id.login_card_view), isDisplayed()))和2. v.check(matches(isDisplayed()))有什么不同?

如果我在第二个代码中做相同的事情,第一行中的isDisplayed()有什么用呢?

1个回答

6

isDisplayed 在这两种情况下具有不同的语义。

假设您的活动没有视图。看看这个单元测试test1,它会成功通过,因为您要求espresso查找具有特定文本和显示的视图。嗯,espresso没有找到那个视图,但是由于没有进一步的检查,所以没有异常,单元测试函数也没有问题。

@Test
public void test1() {
    Espresso.onView(Matchers.allOf(ViewMatchers.withText("bla bla lba") ,ViewMatchers.isDisplayed()));
}

但是看看下面的单元测试test2,它将失败,因为您告诉Espresso查找具有特定文本的视图,然后检查该视图是否显示,而这个检查没有通过。

@Test
public void test2() {
    Espresso.onView(Matchers.allOf(ViewMatchers.withText("bla bla lba"))).check(ViewAssertions.matches(ViewMatchers.isDisplayed()));
}

我希望现在更清晰了


1
请提供比谷歌Espresso文档更好的解释!谢谢。 - Pedro Romão

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接