Тесты Androidx - Как установить свойство активности перед вызовом onCreate

1

у меня есть конструкция активности, как это:

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?

Спасибо

Теги:
android-jetpack
testing

1 ответ

0

Взгляните на ActivityLifecycleMonitor. Вы можете зарегистрировать обратный вызов, чтобы получать информацию, прежде чем активность перейдет в состояние onCreate. https://developer.android.com/reference/androidx/test/runner/lifecycle/ActivityLifecycleMonitor

Ещё вопросы

Сообщество Overcoder
Наверх
Меню