咖啡空转资源,如果长时间运行的任务是在活动的onCreate开始不工作?(Espresso idli

2019-10-23 11:32发布

如何使用咖啡闲置资源,如果长时间运行的任务是在活动的onCreate开始了吗?

我创建了一个自定义的IdlingResource如果长异步方法调用是点击事件触发它工作正常,但休息每当它被称为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(); 
}

任何想法克服这种情况?

Answer 1:

尝试活动的onCreate前登录您的idlingResource。

简单@Before方法应该是足够的。

您也可以实现自己的ActivityRule并覆盖beforeActivityLaunched()如果你正在使用的咖啡,规则方法

或者,如果你想在OnCreate你需要实现自己的TestRunner并重写应用程序之前执行任何代码callApplicationOnCreate()

测试规则的示例如下所示: ActivityTestRule -如何应用的onCreate之前调用代码



文章来源: Espresso idling resource not working if long running task is started in Activity's onCreate?