Android架构组件ViewModel - 如何在测试Activity上模拟ViewModel?

时间:2017-12-27 08:04:58

标签: android kotlin android-espresso android-architecture-components android-viewmodel

我尝试设置类似于 GithubBrowserSample 的UI测试,看起来示例项目只有ViewModel的模拟Fragment,但不是{的示例{1}}。

这是我的代码,我试图通过模拟Activity来测试Activity。但ViewModel未在活动中ViewModel之前设置。

onCreate()

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

JUnit @Rule@Before方法之前进行设置,因此您的活动在调用setUp()方法之前启动并开始其生命周期。为避免这种情况,请将false作为第三个参数传递给规则构造函数。这告诉它不要自动启动活动,因此您可以提前进行设置。

然后,您需要在运行测试之前手动启动活动。您可以创建val intent = Intent(InstrumentationRegistry.targetContext, MainActivity::class.java)之类的意图,然后将其传递给activityRule.launchActivity(intent)