Owl*_*eau 11 android handler robolectric
我在Handler使用Robolectric 测试代码时遇到了麻烦.例如:
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();
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
如何Runnable立即运行代码?它在我的测试完成执行之前没有运行.
kro*_*kin 11
对于Robolectric 3.0版,您应该使用:
org.robolectric.Robolectric.flushForegroundThreadScheduler
或
org.robolectric.shadows.ShadowLooper.runUiThreadTasks
org.robolectric.shadows.ShadowLooper.runUiThreadTasksIncludingDelayedTasks
参考:2.4到3.0升级指南
我认为这应该是一份工作:
Robolectric.runUiThreadTasks();
Run Code Online (Sandbox Code Playgroud)
或者如果安排了几项任务:
Robolectric.runUiThreadTasksIncludingDelayedTasks();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6280 次 |
| 最近记录: |