我有TabLayout
ViewPager
,第3页有一个SwitchCompat
我要执行click()
,但它什么也没做。
@Test
public void checkSummaryPageUpdates_worksCorrect() {
onView(withId(R.id.view_pager)).perform(swipeLeft());
onView(withId(R.id.view_pager)).perform(swipeLeft());
onView(withId(R.id.gs_switch)).check(matches(isDisplayed()));
onView(withId(R.id.gs_switch)).perform(click());
onView(withId(R.id.gs_switch)).check(matches(isChecked())); // AssertionFailed
}
这是错误
android.support.test.espresso.base.DefaultFailureHandler $ AssertionFailedWithCauseError:'with checkbox state:is'与所选视图不匹配。 预期:使用复选框状态:为真
SwitchCompat似乎具有以下属性:
得到:“SwitchCompat {id = 2131689643,res-name = gs_switch,visibility = VISIBLE,width = 996,height = 100,has-focus = false,has-focusable = true,has-window-focus = true, is-clickable = true,is-enabled = true,is-focused = false,is-focusable = true,is-layout-requested = false,is-selected = false,root-is-layout-requested = false,has- input-connection = false,x = 0.0,y = 0.0,text =GLÜCKSSPIRALE+ 5,00€,input-type = 0,ime-target = false,has-links = false,is-checked = false}“
该错误表示未检查Switch,但问题似乎在之前发生,导致Switch保持未选中状态,perform(click())
似乎什么都不做。
答案 0 :(得分:1)
我发布了一个替代解决方案,涉及创建自定义ViewAction以设置切换状态(或任何可检查的内容),而不是使用单击操作。这可以确保您的操作与州无关。
https://stackoverflow.com/a/39650813/1947601
因此,无论先前是否检查过,您都可以保证它会切换到您期望的状态。