Как перезапустить приложение 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)
Другие вопросы по тегам