у меня есть конструкция активности, как это:
class MyActivity : AppCompatActivity() {
lateinit var model: MyModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_layout)
if (!this::model.isInitialized) {
model = MyModel.newInstance(this)
}
model.functionToCall()
}}
Я хочу проверить MyActivity с макетом в качестве модели. Перед Androidx-тестами я использую Robolectric (ActivityBuilder
), чтобы создать экземпляр MyActivity и установить свойство модели с помощью mock. В каждом тесте я запускаю жизненный цикл ActivityBuiler.setup()
с помощью ActivityBuiler.setup()
.
С Androidx-тестами я пытаюсь использовать ActivityScenario
или ActivityTestRule
но невозможно было установить свойство модели до того, как эти классы запустят жизненный цикл активности.
Как я могу сделать с Androidx-тестами, чтобы установить свойство MyActivity.model
с mock до вызова onCreate? Я не могу использовать тесты Androidx?
Спасибо
Взгляните на ActivityLifecycleMonitor. Вы можете зарегистрировать обратный вызов, чтобы получать информацию, прежде чем активность перейдет в состояние onCreate. https://developer.android.com/reference/androidx/test/runner/lifecycle/ActivityLifecycleMonitor