我的测试用例非常简单:在主活动视图中,我有一个抽屉。这个抽屉里有一个菜单项可以打开对话框。我想要验证当点击这个菜单项时,在打开对话框之前,抽屉已经关闭了。
以下是我现在拥有的:
// Opens the drawer
onView(withId(R.id.activity_main_navigation_drawer)).perform(DrawerActions.open())
// Check that the drawer is opened
onView(withId(R.id.activity_main_navigation_drawer)).check(matches(isOpen()))
// Click on the menu item that closes the drawer and display the dialog
onView(withText(R.string.title_add_subscription)).perform(click())
// Check that the drawer is now closed: this won't work
onView(withId(R.id.activity_main_navigation_drawer)).check(matches(isClosed()))
请注意,我不想立即关闭对话框。因为目标是在显示对话框之前/期间断言抽屉已关闭。
问题在于最后一条指令会引发
NoMatchingViewException
,因为抽屉似乎不再是视图层次结构中的组件了。看起来显示对话框会使其成为视图层次结构的新根。尽管如此,我知道活动视图仍然存在。我想知道,在这种情况下,如何匹配对话框下方的视图。