Flu*_*ery 12 testing android android-espresso
是否有使用Espresso等待特定活动完成或启动的规范解决方案?
我有一个SplashActivity出现几秒钟,然后是MainActivity.我希望Espresso与MainActivity交互,而不是SplashActivity,但我似乎无法找到有关等待这种情况的任何信息.
我能找到的最接近的是提到空闲资源,但我不清楚如何在这里使用它来等待活动.
我猜您的启动活动正在执行一些初始化.
如果是这种情况,我的建议是定义某种侦听器模式,以便在初始化完成时能够获得回调.然后,您可以使Espresso等待使用IdlingResource进行初始化.
注意:以下不是完整的代码,但它是为了给您一个如何操作的提示:
public class SplashIdlingResource implements IdlingResource, YourApplicationInitListener {
// volatile because can be set by a different
// thread than the test runner: the one calling back
private volatile boolean mIsInitialized;
private ResourceCallback mCallback;
public SplashIdlingResource() {
YourApplication application = // retrieve your Application object
mIsInitialized = application.isInitialized();
if (!mIsInitialized) {
application.addInitListener(this);
}
}
@Override
public String getName() {
return SplashIdlingResource.class.getName();
}
@Override
public boolean isIdleNow() {
return mIsInitialized;
}
@Override
public void registerIdleTransitionCallback(ResourceCallback callback) {
mCallback = callback;
}
@Override
public void onApplicationInitCompleted() {
m_isInitialized = true;
if (m_callback != null) {
m_callback.onTransitionToIdle();
}
}
}
Run Code Online (Sandbox Code Playgroud)
其中onApplicationInitCompleted()是您定义的回调,必须在Splash Activity,以及初始化完成时调用.
最后,通过在测试设置中调用Espresso.registerIdlingResource,向Espresso注册这个新的IdlingResource.
| 归档时间: |
|
| 查看次数: |
6678 次 |
| 最近记录: |