我想知道是否可以创建一个自定义匹配器,该匹配器可以获取所有指定的视图并对该数组或集合进行断言。
作为一个潜在的例子,它看起来像:
onView(
(withAllIds(R.id.text_view1,R.id.text_view2, R.id.text_view3))).check(matches(isDisplayed())
对于克莱尔来说,上面的说法是断言textview 1、2和3都已显示。
这是否是代码气味,我很好奇听到想法和意见。我将使用它来做出一个简单的断言,即期望的视图在UI级别上显示,并且可能将其与isCompletelyDisplayed()
配对以确保没有内容被剪切。单独编写测试/断言可以使某些失败的调试变得更容易,但是在套件中花费更长的时间才能在CI上单独运行每个测试。
是否有更好的方法来测试这些简单的视图断言?这值得么?
我通常是测试与应用程序交互的爱好者,例如如果应用程序确实执行了某项操作,则UI可以正确处理它,或者如果API返回了响应,则UI可以正确处理它。
但是我很好奇,是否可以将everyItem
Hamcrest示例之类的东西用于Espresso的多个视图。
引用:
http://hamcrest.org/JavaHamcrest/javadoc/1.3/org/hamcrest/core/Every.html