如何解决如何使用 Robolectric 运行具有 LiveData 观察器的片段测试
如何在包含使用 Robolectric 的 LiveData 观察者的测试范围内启动片段。
我的片段正在观察来自 viewmodel 的 liveData。如果我删除这部分代码,测试就会运行。
fun observerData() {
viewmodel.MyLiveData.observe(viewLifecycleOwner,Observer {
...
})
}
测试使用片段场景来启动片段。
@RunWith(RobolectricTestRunner::class)
class MyFragmentTest {
@Test
fun mytest() {
val viewmodel: Myviewmodel = mock(Myviewmodel::class.java)
val scenario = launchFragmentInContainer(
factory = MainFragmentFactory(viewmodel),fragmentArgs = null,themeResId = R.style.Theme_MyTheme
)
}
}
测试返回以下错误。
java.lang.Exception: Main looper has queued unexecuted runnables. This might be the cause of the test failure. You might need a shadowOf(getMainLooper()).idle() call.
我已经尝试将主循环器设置为偶像,但仍然出现相同的错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。