Тесты Androidx - Как установить свойство активности перед вызовом onCreate - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть конструкция активности, подобная этой:

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().

С помощью Androidx-тестов я пытаюсь использовать ActivityScenario или ActivityTestRule, но было невозможно установить свойство модели до того, как эти классы начнут жизненный цикл действия

Как мне сделать с Androidx-тестами , чтобы установить MyActivity.model свойство с mock до вызова onCreate? Я не могу использовать тесты Androidx?

Спасибо

1 Ответ

0 голосов
/ 28 ноября 2018

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

...