我在使用 Robolectric 测试 Handler
代码时遇到问题。例如:
public class Client {
private Handler mMainThreadHandler;
public interface Callback{
void ok();
}
public Client() {
mMainThreadHandler = new Handler(Looper.getMainLooper());
}
public void doSomeStuff(Callback callback){
//doing...
mMainThreadHandler.post(new Runnable(){
@Override public void run() {
callback.ok();
}
});
}
}
如何立即运行 Runnable
中的代码?它不会在我的测试执行完成之前运行。
最佳答案
对于 Robolectric 3.0 版,您应该使用:
org.robolectric.Robolectric.flushForegroundThreadScheduler
或者
org.robolectric.shadows.ShadowLooper.runUiThreadTasks
org.robolectric.shadows.ShadowLooper.runUiThreadTasksIncludingDelayedTasks
关于android - Robolectric Run Handler 帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18956117/