android.test.ActivityUnitTestCase に基づいて簡単な単体テストを書きたいと思います。テストは単純なので、実行時間は非常に短いと思います。ただし、テストには少なくとも 6 秒かかります。
このテストでは、Google のチュートリアルの簡単なアプリケーションをテストします。これは私のテストです:
public class MainActivityUnitTest extends ActivityUnitTestCase<MainActivity> {
public MainActivityUnitTest() {
super(MainActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
Intent intent = new Intent(getInstrumentation().getTargetContext(),
MainActivity.class);
startActivity(intent, null, null);
}
public void testNextActivityWasLaunchedWithIntent() {
Button sendButton =
(Button) getActivity()
.findViewById(com.bjoerne.aroundtheworldvisualizer.R.id.send);
sendButton.performClick();
Intent intent = getStartedActivityIntent();
assertNotNull("Intent was null", intent);
final String payload =
intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
assertEquals("", payload);
}
}
Eclipse で「Run as -> Android JUnit Test」を選択しました。あれは正しいですか?ただし、Android Virtual Device (AVD) が必要なようです。AVD が開始されていない場合は、テストのために開始されます (テストには 1 分かかります)。ただし、AVD が既に実行されている場合でも、数秒かかるテストが実行される前にチェックまたは初期化されているようです。
ActivityUnitTestCase 用に実行中の AVD は必要ありませんか? テストの実行を高速化する方法はありますか?