ActivityのJUnitTestCaseの作成について¶
手順¶
-
テストパッケージを右クリック→「New」→「JUnit TestCase」
-
画面が出てくるので、以下を入力します。

NAME:Activity名+"Test"
Superclass:ActivityInstrumentationTestCase2<検証したいクラス名>
Class under test:テストしたいActivity
- 「Next」を選択し、以下画面を表示します。 テストしたいメソッドを選択し、「Finish」を押します。

-
importをimport android.test.ActivityInstrumentationTestCase2;
import 検証したいプログラムのパッケージ名;に変更します。 -
まだ、クラス名の所でエラーが発生しているので 引数なしのコンストラクタを追加します。 (例)
1 2 3 | public MainActivityTest() { super(MainActivity.class); } |
(第一引数:テストを行いたいプロジェクト名、第二引数:テストを行いたいクラス名) ここまでのソースの例は以下のようになります。
(例)
1 2 3 4 5 6 7 8 9 10 11 12 13 | package my.arrayadapter.ecli.test; import android.app.Activity; import android.test.ActivityInstrumentationTestCase2; import my.arrayadapter.ecli.ArrayadapterActivity; public class TEST extends ActivityInstrumentationTestCase2<ArrayadapterActivity> { public TEST(){ super(ArrayadapterActivity.class); } } |
getActivity()とfinish()について説明¶
テストコードが実行される前に、確かにシステムに教えて1つのActivityをスタートします。メソッドgetActivity()を使って1つのActivityをスタートすることができます。最後に、メソッドgetActivity()を使ってこのActivityを中断します。 (例)
1 2 3 4 5 6 7 8 9 10 11 12 13 | public void setUp() throws Exception{ super.setUp(); mActivity = getActivity(); } public void testActivity(){ mActivity.runOnUiThread(new Runnable(){ @Override public void run(){ //UIで行う動作 } }); mActivity.finish(); } |
mInstrument.waitForIdleSync¶
シングルなスレッドでテストケースを実行する時、mInstrument.waitForIdleSync()を使ってアプリケーションをシンクロナイズします。 (例)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | mActivity.runOnUiThread(new Runnable() { @Override public void run() { //UIで行う動作 } }); mInstrument.waitForIdleSync(); mActivity.runOnUiThread(new Runnable() { @Override public void run() { //UIで行う動作 } }); |
常用メソッド¶
- キー入力を行いたい場合はsendKeys()で行い、例えば「1」という数字を入力する場合はsendKeys(KeyEvent.KEYCODE_1);
- BackSpaceを入力する場合は、sendKeys(KeyEvent.KEYCODE_DEL);
- ボタンタップのイベントはボタンオブジェクトに対して、performClick()メソッドを利用する。