使用Robolectric对Android应用程序的延迟块进行单元测试

时间:2013-10-15 15:32:04

标签: android unit-testing robolectric

我想测试使用View#postDelayed(Runnable, delay)计划的块的执行情况。所以在断言之前我打电话给Robolectric.runUiThreadTasksIncludingDelayedTasks()。但是测试代码卡住了,即没有返回。

如果我直接运行应用程序,我确信会调用延迟阻止。

这是runUiThreadTasksIncludingDelayedTasks()的错误还是有任何其他前提条件可以使用它?

THX, 米克

2 个答案:

答案 0 :(得分:1)

使用Robolectric 3.8,您可以使用:

Robolectric.flushForegroundThreadScheduler()

这将执行已在前台调度程序上排队的所有可运行文件。

答案 1 :(得分:0)

适用于最新发布的Robolectric版本。