今回はこの UsefulUtilities.java の toUpper() をテストする。
メニューから"File -> New -> Project..." と辿り、Androidカテゴリーの中の"Android Test Project"を選ぶ。
Targetは何でもよいが今回はGoogle APIs + 2.0 を選んでおく。ここで "Test Target" に "An existing Android project" を選び、右の "Browse..." を選択する
今回は ExampleForTest プロジェクトに対するテストである。そのプロジェクトを選択する
プロジェクト名などが自動的に補完された。これは変更しても良い。今回はこのまま "Finish" を押す。
作られた直後は何のJavaファイルも作成されない。任意のファイル名でテスト用のJavaファイルを作ってよい。
画像が非常に小さくて申し訳ない。このように書いてある
package com.android.example.examplefortest.test; public class ExampleTests extends TestCase { }
この状態ではTestCaseがimportされていない。ここで"Ctrl+Shift+O"
importが補完された。
package com.android.example.examplefortest.test; import junit.framework.TestCase; public class ExampleTests extends TestCase { }
見ての通り、TestCaseはAndroid特有のテストではなくJUnitのクラスである。Androidのフレームワークと関係ないクラスやメソッドのテストではJUnitの枠組みを使うのである。
JUnit では "test" で始まるpublicメソッドをテストケースと認識する。
package com.android.example.examplefortest.test; import com.android.example.examplefortest.UsefulUtilities; import junit.framework.TestCase; public class ExampleTests extends TestCase { public void testToUpper() { assertEquals("INPUT", UsefulUtilities.toUpper("input")); } }
慣習として「期待する戻り値を左、実際の結果を右」に書く。
プロジェクト名のExampleForTestTestを右クリックし、"Run As -> "Android JUnit Test" を選択する。
ここでテストを実行させるデバイスまたはシミュレータを指定するダイアログが出るかもしれない。適切なターゲットを設定すること。
しばらくするとユニットテストが実行される。今回は UsefulUtilities の toUpper() でエラーが出ていることが分かる。思ったほど useful ではないようだ。
すべてのユニットテストに成功した場合は緑色のバーとなる。今回の例で成功するためにはUsefulUtilitiesをどう変更すれば良いかは課題とする。