Sanırım, açılış etkinliğiniz bazı başlatma işlemlerini gerçekleştiriyor.
Böyle bir durum söz konusuysa, önerim, başlatma işlemi tamamlandığında geri arama alabilmek için bir çeşit dinleyici modeli tanımlamaktır. Ardından, Espresso'yu IdlingResource ile başlatmayı bekleyebilirsiniz.
Not: Aşağıdaki komple kod DEĞİLDİR, ama size bunu nasıl bir ipucu vermek içindir:
onApplicationInitCompleted() tanımladıktan ve hangi çağrılmalıdır geri arama olduğunu
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();
}
}
}
zaman Sıçrama Etkinliği ve böylece başlatma işlemi tamamlandı.
Son olarak, Espresso.registerIdlingResource öğesini test kurulumunda arayarak bu yeni IdlingResource'u Espresso'yla kaydedin.