Как перезапустить приложение Android (/app state) в тесте Espresso?
Я тестирую страницу входа - в частности, флажок "Autologin", чтобы при повторном открытии приложения вход в систему пользователя был выполнен автоматически (по умолчанию пользователь должен войти с нуля).
Как я могу симулировать это поведение? Является ли перезапуск приложения единственным способом? Могу ли я каким-то образом сбросить приложение на начальный экран (как при перезапуске), но чтобы сохранить пользовательские данные / файлы cookie?
2 ответа
Моим первоначальным решением было закрыть приложение Espresso.pressBackUnconditionally()
(это похоже на Espresso.pressBack()
но не будет вызывать исключение, когда Espresso выходит за пределы тестируемого приложения или процесса) и для повторного запуска активности: activityRule.launchActivity(null)
.
Однако в конце концов мы придумали более изощренное решение перезапуска деятельности в инструментарии:
with(activityRule) {
finishActivity()
launchActivity(null)
}
Правило проверки активности устарело. Вы можете сделать это, используя следующий код в Kotlin
activityScenarioRule.scenario.close()
ActivityScenario.launch(YourActivity::class.java, null)