Я использую Espresso в инструментальных тестах моего приложения mvvm, и почти все работает нормально. Но я хочу охватить случай сохранения / восстановления состояния активности во время восстановления активности. И я использую это для имитации этого сценария:
InstrumentationRegistry.getInstrumentation()
.runOnMainSync { activity.recreate() }
И это работает, вызывается onSaveInstanceState(outState: Bundle)
, а также onCreate(savedInstanceState: Bundle?)
с savedInstanceState
с моими сохраненными переменными.
Проблема в том, что onCleared
моей ViewModel не вызывается, потому что он не уничтожается во время вызова activity.recreate()
.
Главное здесь - когда Activity воссоздается, он получает тот же экземпляр ViewModel, созданный ранее, и я не хочу, чтобы это произошло. Я хочу, чтобы он работал таким же образом, когда я вручную включаю Не сохранять действия .
Есть ли способ имитировать уничтожение как Activity / Fragment, так и ViewModel с помощью Espresso?