【发布时间】:2022-01-02 22:08:44
【问题描述】:
我收到getMainLooper in android.os.Looper not mocked 异常。我添加了 InstantTaskExecutorRule 规则,但它仍然不适合我。
【问题讨论】:
标签: android junit5 android-livedata
我收到getMainLooper in android.os.Looper not mocked 异常。我添加了 InstantTaskExecutorRule 规则,但它仍然不适合我。
【问题讨论】:
标签: android junit5 android-livedata
添加此类并在测试类顶部添加注释后,它就可以工作了。
@ExtendWith(InstantExecutorExtension::class)
class InstantExecutorExtension : BeforeEachCallback, AfterEachCallback {
override fun beforeEach(context: ExtensionContext?) {
ArchTaskExecutor.getInstance()
.setDelegate(object : TaskExecutor() {
override fun executeOnDiskIO(runnable: Runnable) = runnable.run()
override fun postToMainThread(runnable: Runnable) = runnable.run()
override fun isMainThread(): Boolean = true
})
}
override fun afterEach(context: ExtensionContext?) {
ArchTaskExecutor.getInstance().setDelegate(null)
}
}
【讨论】: