Android'de yeni bir kullanıcıyım ve bir SplashScreen'i test etmekte takıldım, temelde yaptığım şey, ekranın 3 saniye boyunca açık olduğunu test etmeye çalışıyor. Bu splashscreenAndroid Test Handler.postDelayed
@Override
protected void onStart() {
super.onStart();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent i = new Intent(SplashScreenActivity.this, MainActivity.class);
startActivity(i);
finish();
}
}, SPLASH_TIME_OUT);
}
kodudur Ve bu test için benim yaklaşımdır:
@Test
public void splashScreenTimerTest() throws InterruptedException {
StopWatch timer = new StopWatch();
timer.start();
splashScreenActivityController.start();
timer.stop();
long expected = 3000L;
assertThat(String.format("The spalash screen run for longer than expected. It should stay on for [%d] but it run for [%d]",expected,timer.getTime()),timer.getTime(),equalTo(expected));
}
Ben test için Android + Robolectric kullanıyorum.
Birkaç günlüğüne uğraştım, birçok şeyi denedim ama sonuç yok. UI Thread'i almaya çalışıyorum ve bekleyin. Kuyruk almak ve orada herhangi bir görev olup olmadığını görmek için programlayıcıyı denedim. Ama sonuç yok.
Herhangi bir öneri, testimi yeni Etkinlik tetiklenene kadar nasıl bekletebilirim? Sadece çağrılacak çalıştırılabilir olsaydı
Robolectric.pauseMainLooper();
Robolectric.getUiThreadScheduler().advanceBy(intervalMs);
Robolectric.unPauseMainLooper();
ya,:
Teşekkür
to O için teşekkürler lp, daha sonra kontrol edeceğim! – Rabel
Büyük çekicilik –