我有一个AndroidJUnit4测试用例,在这个测试用例中,我使用以下代码来验证快餐栏是否显示并包含正确的文本:
onView(withId(android.support.design.R.id.snackbar_text)).check(matches(isDisplayed()));
onView(allOf(withId(android.support.design.R.id.snackbar_text), withText(R.string.msg_error_unknown_user)))
.check(matches(isDisplayed()));
当我在API级别为22的仿真器/设备上运行此测试时,测试运行正确。当我切换到API级别17时,测试失败并出现此异常:
android.support.test.espresso.NoMatchingViewException: No views in hierarchy found matching: with id: com.mydomain.myappname:id/snackbar_text
请注意,应用程序在两个API级别上的行为方式相同;小吃店正确显示。
为什么在我的测试用例中没有在API级别17上检索的零食栏,我该如何解决这个问题呢?
答案 0 :(得分:0)
好吧,Espresso
正在查看您的xml
文件并搜索snackbar_text
,但它找不到它,因为它有android系统ID,其中{{1}没有访问权限。如果您仍想查看它,请了解另一个名为Espresso
的Google检测测试框架。
在这里,您可以找到它与uiautomator
:http://qathread.blogspot.com/2015/05/espresso-uiautomator-perfect-tandem.html
另外,请花点时间看看我在下面的代码中如何测试Espresso
:
Snackbar
希望你觉得它很有用。