如果在Activity' onCreate中启动了长时间运行的任务,如何使用espresso空闲资源?
我创建了一个自定义IdlingResource,如果click异步方法调用是由click事件触发的,它可以正常工作,但只要在Acitivty的onCreate方法中调用它就会中断。
示例:
public void onBtnClick(){
setIdle(true); // This works fine, our tests wait until setIdle(false) is called
doSomeBackgroundTask();
}
public void onDone(){
setResourceIdle(false);
setIdle(false);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setIdle(true); // This doesn't work, our tests won't wait
doSomeBackgroundTask();
}
有什么想法可以克服这种情况吗?
答案 0 :(得分:4)
尝试在活动onCreate之前注册idlingResource。
简单的@Before
方法就足够了。
如果您使用的是espresso规则,您还可以实施自己的ActivityRule并覆盖beforeActivityLaunched()
方法
或者如果你想在Application oncreate之前执行任何代码,你需要实现自己的testrunner并覆盖callApplicationOnCreate()
此处显示测试规则的示例: ActivityTestRule - how to call code before Application's onCreate