Androidx测试-如何在调用onCreate之前设置活动属性

时间:2018-11-08 08:53:38

标签: android testing android-jetpack

我有一个像这样的活动构造:

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的实例并使用模拟设置模型属性。在每个测试中,我都以ActivityBuiler.setup()开始活动生命周期。

使用 Androidx测试,我尝试使用ActivityScenarioActivityTestRule,但是在此类开始活动生命周期之前,无法设置模型属性 >

在调用onCreate之前,如何使用 Androidx测试通过 mock 设置MyActivity.model属性?我不能使用Androidx测试吗?

谢谢

1 个答案:

答案 0 :(得分:0)

看看ActivityLifecycleMonitor。您可以注册一个回调以在活动进入onCreate状态之前获得通知。 https://developer.android.com/reference/androidx/test/runner/lifecycle/ActivityLifecycleMonitor