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