1
Robolectric (3.1)은 핸들러에 게시 된 실행 파일을 실행할 수 있어야합니다.Robolectric이 Runnable을 실행하지 않습니다.
@Test
public void shouldExecuteRunnable() throws Exception {
final CountDownLatch signal = new CountDownLatch(1);
final boolean[] result = {false};
Runnable runnable = new Runnable() {
@Override
public void run() {
result[0] = true;
signal.countDown();
}
};
HandlerThread handlerThread = new HandlerThread("HandlerThread");
handlerThread.start();
Handler handler = new Handler(handlerThread.getLooper());
handler.post(runnable);
Robolectric.flushBackgroundThreadScheduler();
Robolectric.flushForegroundThreadScheduler();
signal.await(5, TimeUnit.SECONDS);
Assert.assertTrue(result[0]);
}
어설 션에서 테스트가 실패합니다. 내가 놓친 게 있니?
도움이 될 것입니다.
ShadowLooper threadShadow = shadowOf(thread.getLooper());
threadShadow.runOneTask();
: