Androidアプリのユニットテスト
Androidのユニットテストには、Android SDKに組み込まれているAndroid Instrumentationという仕組みを使用する。
細かいことは日本アンドロイドの会にある資料に任せるとして、ここでは実装手順などを書いておこう。
1. テストアプリのプロジェクトを作成
パッケージ名とかは、まぁ適当に。
2. ビルドパスにテスト対象アプリのプロジェクトを追加する
3. AndroidManifest.xmlを書き換える
<application> <uses-library android:name="android.test.runner" /> </application> <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="パッケージ名" android:label="アプリケーション名" />
4. テストケース全体実行クラスを作成する
- TestSuiteクラスを継承してAllTestsクラスを生成する。
- 下記関数をAllTestsクラス内に定義する。
public static Test suite() { return new TestSuiteBuilder(AllTests.class) .includeAllPackagesUnderHere() .build(); }
5. テストケースクラスを作成する
- テスト対象のクラスに合ったテストケースクラスを生成する。
- ActivityInstrumentaionTestCase
- ActivityUnitTestCase
- SingleLaunchActivityTestCase
- ProviderTestCase
- ServiceTestCase
- ApplicationTestCase
- 他AndroidTestCaseなど
- setUp( ) と tearDown( ) をオーバーライドし、テストの前処理と後処理を記述する。(必要なければ、オーバーライドしなくともよい)
- テストケースを記述するメンバ関数を作成する。以下の条件を満たしている関数が、自動的に実行される。
- 公開関数である (public)
- 関数名の先頭が”test”
- 引数がvoid
- 戻り値がvoid
- 判定はassertTrue, assertEqualsなど、Assertで定義されている関数を使用する
6. ビルドして実行する
DevTools → Instrumentations に、AndroidManifest.xmlで設定したラベル名で表示される。
実行結果はLogCatで参照する。