gpt4 book ai didi

android - 如果在 Activity 的 onCreate 中启动长时间运行的任务,Espresso 空闲资源将无法工作?

转载 作者:行者123 更新时间:2023-11-29 15:49:41 25 4
gpt4 key购买 nike

如果长时间运行的任务在 Activity 的 onCreate 中启动,如何使用 espresso idling 资源?

我已经创建了一个自定义的 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();
}

有什么办法可以克服这种情况吗?

最佳答案

尝试在 onCreate Activity 之前注册您的 idlingResource。

简单的 @Before 方法就足够了。

如果您使用的是 espresso-rules,您还可以实现自己的 ActivityRule 并覆盖 beforeActivityLaunched() 方法

或者,如果您想在 Application oncreate 之前执行任何代码,您需要实现自己的测试运行器并覆盖 callApplicationOnCreate()

测试规则示例如下所示: ActivityTestRule - how to call code before Application's onCreate

关于android - 如果在 Activity 的 onCreate 中启动长时间运行的任务,Espresso 空闲资源将无法工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30968145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com