JUnitを基にしたテストケースクラスの作成
AndroidのテスティングフレームワークはJUnit 3.8系がベースとなっています。テストケースの作成方法は基本的にJUnitの記述方法と同じです。JUnitについては、下記記事を参照しておいてください。
JUnitとEclipseを使って学ぶ、“テスト”の常識
Webアプリの常識をJSPとStrutsで身につける(10)
テストの考え方やポイント、JUnitの特徴、Struts Testcaseを使った具体的なテストの仕方をサンプルとともに解説
「Java Solution」フォーラム 2009/7/10
ただし、Androidアプリに依存するようなテストケースについては独特の作法があるので、第2回以降に詳細を解説します。今回は、Activityのテスト用のテストケースを利用してテストケースクラスを作成します。テスト対象のクラスは、「HelloAndroidのcom.example.helloandroid.HelloAndroidActivity」とします。
Eclipseのウィザードでテストクラスのひな型を自動生成
まず、[Package Explorer]で「src」フォルダを開き、「com.example.helloandroid.test」パッケージで右クリックし、コンテキストメニューから[New]→[Class]を選択します。
[Name]に「HelloAndroidActivityTest」を、[Superclass]に「android.test.ActivityInstrumentationTestCase2」を、それぞれ設定します。「android.test.ActivityInstrumentationTestCase2」は、Activityクラスのテストを行うためのテストケースで、Android SDKに入っています。
[Finish]ボタンをクリックします。すると、エラーと警告が1件ずつ出ているはずです。
警告の修正
内容は、ActivityInstrumentationTestCase2がパラメータとなっているのに、型パラメータリストを設定していないことに対する警告です。ActivityInstrumentationTestCase2はテスト対象となるActivityクラスでパラメータとなります。
ここでは、テスト対象のActivityクラスはHelloAndroidActivityなので、HelloAndroidActivityでパラメータ化します。
package com.example.helloandroid.test; import com.example.helloandroid.HelloAndroidActivity; import android.test.ActivityInstrumentationTestCase2; public class HelloAndroidActivityTest extends ActivityInstrumentationTestCase2<HelloAndroidActivity> { }
エラーをEclipseの修正候補表示機能で直す
またエラー内容は、「ActivityInstrumentationTestCase2はデフォルトコンストラクタが定義されないため、コンストラクタを定義する必要がある」という内容です。作成したHelloAndroidActivityTestにコンストラクタを定義し、「ActivityInstrumentationTestCase2(String pkg, Class activityClass)」を呼び出します。
このとき、エラー個所にカーソルを当てて、[Ctrl]+[1]キーでエラーの修正候補を表示します。
今回は、「Add constructor ‘HelloAndroidActivityTest(String, Class )’」を選択します。選択すると、Eclipseがコンストラクタを自動で追加します。
package com.example.helloandroid.test; import com.example.helloandroid.HelloAndroidActivity; import android.test.ActivityInstrumentationTestCase2; public class HelloAndroidActivityTest extends ActivityInstrumentationTestCase2<HelloAndroidActivity> { public HelloAndroidActivityTest(String pkg,Class<HelloAndroidActivity> activityClass) { super(pkg, activityClass); // TODO Auto-generated constructor stub } }
Eclipseには、エラーや警告に対して修正候補を表示して、自動でコードを生成する機能があります。毎回、適切な修正候補を提示するわけではありませんが、必要に応じて、この機能を利用すると効率的にコーディング可能です。エラー候補が複数ある場合、[Ctrl]+[>]キーで次のエラーまたは警告、[Ctrl]+[<]キーで前のエラーまたは警告にジャンプします。
コンストラクタ
コンストラクタの第1引数には、テスト対象のルートパッケージを設定します。第2引数にはテスト対象クラスのインスタンスを設定します。
package com.example.helloandroid.test; import com.example.helloandroid.HelloAndroidActivity; import android.test.ActivityInstrumentationTestCase2; public class HelloAndroidActivityTest extends ActivityInstrumentationTestCase2<HelloAndroidActivity> { public HelloAndroidActivityTest() { super("com.example.helloandroid", HelloAndroidActivity.class); } }
続いて次ページでは、セットアップメソッドをEclipseのコード補完機能で定義し、テストメソッドを追加して、テストを実行します。
Copyright © ITmedia, Inc. All Rights Reserved.