Я решил проблему с помощью обработчика.
В методе setUp тестового класса я создал обработчик.
@UiThreadTest
@Before
public void setUp() throws Exception {
handler = new Handler();
}
Обратите внимание, что я использую аннотацию @UiThreadTest для метода, чтобы связать обработчик с UiThread.
В тестовом методе я использовал обработчик для запуска кода модели представления в потоке пользовательского интерфейса и методов проверки в другом потоке. Обратите внимание, что я удалил аннотацию @UiThreadTest здесь.
@Test
public void testThatInspectionsAreFetchedWhenVesselIdIsSet() throws Exception{
MyViewModel myViewModel = Mockito.spy(new MyViewModel());
handler.post(() -> myViewModel.doSomething());
Thread.sleep(5000);
verify(myViewModel).displayData();
}
Теперь метод теста работает отлично!