連載
» 2011年11月17日 00時00分 UPDATE

Androidアプリ開発テスト入門(1):Androidアプリ開発でテストを始めるための基礎知識 (2/3)

[宮田友美,日本Androidの会テスト部]

JUnitを基にしたテストケースクラスの作成

 AndroidのテスティングフレームワークはJUnit 3.8系がベースとなっています。テストケースの作成方法は基本的にJUnitの記述方法と同じです。JUnitについては、下記記事を参照しておいてください。

ma_icon_s_3.gif

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]を選択します。

r1305.gif

 [Name]に「HelloAndroidActivityTest」を、[Superclass]に「android.test.ActivityInstrumentationTestCase2」を、それぞれ設定します。「android.test.ActivityInstrumentationTestCase2」は、Activityクラスのテストを行うためのテストケースで、Android SDKに入っています。

r1306.gif

 [Finish]ボタンをクリックします。すると、エラーと警告が1件ずつ出ているはずです。

r1307.gif

警告の修正

 内容は、ActivityInstrumentationTestCase2がパラメータとなっているのに、型パラメータリストを設定していないことに対する警告です。ActivityInstrumentationTestCase2はテスト対象となるActivityクラスでパラメータとなります。

 ここでは、テスト対象のActivityクラスはHelloAndroidActivityなので、HelloAndroidActivityでパラメータ化します。

r1308.gif
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]キーでエラーの修正候補を表示します。

r1309.gif

 今回は、「Add constructor ‘HelloAndroidActivityTest(String, Class )’」を選択します。選択すると、Eclipseがコンストラクタを自動で追加します。

r1310.gif
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© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。