【问题标题】:Method getMainLooper in android.os.Looper not mocked still occuring even after adding InstantTaskExecutorRule即使在添加 InstantTaskExecutorRule 之后,android.os.Looper 中的方法 getMainLooper 仍未被模拟仍然发生
【发布时间】:2022-01-02 22:08:44
【问题描述】:

我收到getMainLooper in android.os.Looper not mocked 异常。我添加了 InstantTaskExecutorRule 规则,但它仍然不适合我。

【问题讨论】:

    标签: android junit5 android-livedata


    【解决方案1】:

    添加此类并在测试类顶部添加注释后,它就可以工作了。

    @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)
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-31
      相关资源
      最近更新 更多