Я должен проверить всплеск экрана, у которого есть видео, продолжительность видео составляет 11 секунд, когда видео заканчивается другим действием.Испытайте до конца видеообработки, чтобы начать новую активность robolectric 3
У меня есть тест последующий класс:
public class ScreenSplashTest {
private ShadowActivity screenSplash;
private ShadowVideoView videoView;
@Before
public void setUp(){
ScreenSplash screenSplashActivity = Robolectric.buildActivity(ScreenSplash.class).create().get();
screenSplash = Shadows.shadowOf(screenSplashActivity);
VideoView videoViewWidget = (VideoView)screenSplash.findViewById(R.id.videoViewSplash);
videoView = Shadows.shadowOf(videoViewWidget);
}
@Test
public void activityStarts_VideoStartsToPlay() throws Exception{
assertTrue(videoView.isPlaying());
}
@Test
public void whenVideoFinish_StartsChooseTeamActivity() throws Exception{
videoView.stopPlayback();
Intent nextActivity = screenSplash.getNextStartedActivity();
assertEquals(nextActivity.getComponent().getClassName(), ChooseTeamActivity.class.getName());
}
}
И это моя ScreenSplash активность:
public class ScreenSplash extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_screen_splash);
getSupportActionBar().hide();
this.getWindow().getDecorView().setBackgroundColor(0xffffff);
VideoView videoView = (VideoView) findViewById(R.id.videoViewSplash);
Uri videoFile = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.splash);
videoView.setVideoURI(videoFile);
videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
Intent i = new Intent(getApplicationContext(), ChooseTeamActivity.class);
startActivity(i);
}
});
videoView.start();
}
}
Вопрос заключается в том, как я могу написать тест для этого кода?
ohh thak you :) Я очень нуждаюсь в блоке тестирования thaks для руководства – kentverger