Android에서 초보자이며 SplashScreen을 테스트하는 데 막혀 있습니다. 기본적으로 내가하고있는 일은 스플래시 화면이 3 초 동안 계속 작동하는지 테스트하려는 것입니다. 이것은 스플래시 스크린Android 테스팅 핸들러 .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);
}
의 코드이며,이 시험에 대한 나의 접근 방식 :
@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));
}
내가 테스트를 위해 안드로이드 + Robolectric을 사용하고 있습니다.
나는 며칠 동안 인터넷 검색을 해왔지만 많은 결과를 시도했지만 아무런 결과도 얻지 못했습니다. 나는 UI Thread를 얻고 그것을 기다린다. 스케줄러에게 대기열을 가져다가 거기에 어떤 작업이 있는지 확인하려고했습니다. 그러나 전혀 결과가 없습니다.
새로운 제안 새로운 활동이 시작될 때까지 내 테스트를 어떻게 대기시킬 수 있습니까? 당신은 단지라고 할 수있는 실행 가능한 있다면
Robolectric.pauseMainLooper();
Robolectric.getUiThreadScheduler().advanceBy(intervalMs);
Robolectric.unPauseMainLooper();
또는 :
감사
투 그는 고마워. lp, 나중에 확인해 보겠습니다. – Rabel
위대한 작품처럼 매력 –