Эспрессо: нажмите () на SwitchCompat не работает
У меня есть 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, видимость =VISIBLE, ширина =996, высота =100, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focus =false, is-focusable=true, is-layout-запрашивается =false, is-selected=false, root-is-layout-запрашивается = false, имеет-вход-соединение =false, x=0.0, y=0.0, текст =GLÜCKSSPIRALE +5,00 €, тип ввода =0, ime-target=false, has-links=false, is-checked=false}"
Ошибка говорит о том, что коммутатор не проверен, но проблема, кажется, возникла раньше, потому что коммутатор просто не проверяется, perform(click())
кажется, ничего не делает. Кто-нибудь может помочь?
1 ответ
Я опубликовал альтернативное решение, которое включает создание пользовательского ViewAction для установки состояния переключателя (или любого Checkable в этом отношении) вместо использования действия щелчка. Это гарантирует, что ваше действие не зависит от государства.
/questions/10554355/android-espresso-ustanovite-flazhok-esli-ne-otmechen/10554380#10554380
Таким образом, независимо от того, была ли она ранее проверена или нет, вы гарантированно переключитесь в ожидаемое состояние.