Robolectric 处理程序 post() 未按预期工作

Robolectric Handler post() not working as expected

我有以下代码

class ClassToTest {
    fun doSomething() {
        Handler().post {
            println("some work by handler")
        }
    }
}

和下面的测试代码

@RunWith(RobolectricTestRunner::class)
@Config(sdk = [Build.VERSION_CODES.N_MR1])
class TestClass {
    @Test
    fun `test do something`() {
        val underTest = ClassToTest()
        underTest.doSomething()
    }
}

我的打印语句或 Handler#post 中的任何内容显然没有被调用

为什么?

Robolectric 版本 4.7.3 Java 版本 11 compileSdk 30

找到解决方案感谢这个 post,添加 shadowOf(getMainLooper()).idle() 触发里面的东西 post {}

@Test
    fun `test do something`() {
        val underTest = ClassToTest()
        underTest.doSomething()
        shadowOf(getMainLooper()).idle()
    }