Сообщение обработчика Robolectric() работает не так, как ожидалось

#android #robolectric

#Android #роболектрический

Вопрос:

У меня есть следующий код

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

Мое заявление о печати или что-то еще внутри обработчика#post, по-видимому, не вызывается

Почему?

Robolectric версии 4.7.3 Java версии 11 компиляции 30

Ответ №1:

Нашел решение благодаря этому сообщению, добавив shadowOf(getMainLooper()).idle() триггеры в материалы внутри post {}

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