Android Studioでユニットテストを動かしてみたのでメモ。
環境
・Mac OS X 10.8.4
・Android Studio (I/O Preview) 0.2.5
テスト対象Activityのコード
package com.example.app; import android.os.Bundle; import android.app.Activity; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public String getMessage() { return "Hello"; } public int add(int a, int b) { return a + b; } }
テストの作成
まず、src/配下に「instrumentTest」ディレクトリを作成します。
さらに、instrumentTest/配下に「java」ディレクトリを作成します。
※ディレクトリ新規作成はショートカット[command] + [N]からが楽かなと思います。
instrumentTest/java/ディレクトリを作成したら、今度はパッケージを作成します。
パッケージ名は<テスト対象パッケージ名>.testとなります。
あとは、作成したパッケージにテストのクラスを作成します。
クラス名は<テスト対象クラス名> + Testとします。
今回の例ではMainActivityTestとなります。
テストコードはこんな感じです。
package com.example.app.test; import android.test.ActivityInstrumentationTestCase2; import com.example.app.MainActivity; public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity>{ private MainActivity mActivity; public MainActivityTest() { super(MainActivity.class); } @Override protected void setUp() throws Exception { super.setUp(); mActivity = getActivity(); } public void testGetMessage() throws Exception { String expected = "Hello"; String actual = mActivity.getMessage(); assertEquals(expected, actual); } public void testAdd() throws Exception {
int expected = 2; int actual = mActivity.add(1, 1); assertEquals(expected, actual); } }
Run/Debug Configurationsの設定
ツールバーから[Edit Configurations...]を開きます。
左上の[+]ボタンから[Android Tests]を追加します。
[Name]:適宜名前を付けます。
[Module]:アプリのモジュールを設定します。
[Target Device]:適宜設定します。(今回はShow chooser dialogを選択)
上記の設定が完了したら、[OK]ボタンをクリックします。
これで準備完了です。
テストの実行
作成したテスト用のコンフィグレーションが選択された状態で、その右の[Run]ボタン(緑三角ボタン)をクリックするとテストが開始されます。
テストが完了すると、こんな感じのテスト結果画面が表示されます。
まとめ
今回はIDE上でユニットテストを行いましたが、コマンドラインからユニットテストを行うこともできます。
コマンドラインから実行した場合、HTMLのテスト結果レポートが作成されます。
その辺り、次回まとめてみようかなと思ってます。
0 件のコメント:
コメントを投稿