既存プロジェクトへのテスト追加


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

うまくいってないっす。。。orz

概要

Androidアプリの開発で、ロジック周りの検証を行いたいが、リリース用のプロジェクトにはテストコードが込められない。
そんなときには開発環境(Java SDKかなぁ?)が提供するテスト機能を使ってロジックチェックを行えばよい。
今回使用するのはユニットテストフレームワークとして名高いxUnitシリーズのJava用、 JUnit である。

  • 参考資料
    今から5分で,開発中のAndroidアプリを単体テストしよう (JUnitで自動テストする方法)
    http://d.hatena.ne.jp/language_and_engineering/20130121/UnitTestOfAndroidAppOnEclipse
    

用意するもの

  • テスト対象となる既存のAndroidプロジェクト
  • 時間とお金(あれば)


JUnitはEclipseとかAndroidSDKとかインストールしている中で一緒にインストールされているらしい。
よって別段準備するものはない。ありがたい。

テストプロジェクトを追加する

方法は2つある。

  1. テスト用のプロジェクトを起こす方法
  2. 既存のプロジェクトにテスト用パッケージを追加する方法


今回は2番目でやってみる。

パッケージを作ろう

既存のプロジェクトに対してコンテキストメニューからNew→Package。
今回はテスト対象のパッケージに「.test」のサフィックスをつけた名前にした。

テストを行う側のクラスを作ろう

この節では、Activityのクラスをターゲットにしたテストを行う。

パッケージにClassをNew。
SuperClassにActivityInstrumentationTestCase2を選択して継承させる。
自動生成されたソースの中の、テンプレート部分<T>に、ターゲットとなるクラス名をいれる。
そのままだと参照できないので、import文を追加する。
↓こんな感じ。

package com.android.ritchan.arkaklelinar.test;
 
import android.test.ActivityInstrumentationTestCase2;
import com.android.ritchan.arkaklelinar.*; //★
 
public class GUITest extends ActivityInstrumentationTestCase2<MainActivity> {  //★
 
	// ★ GUITestに赤波線が出て、コンストラクタを追加してくりゃれ、とでるので了承すると作られるメソッド↓
	public GUITest(Class<MainActivity> activityClass) {
		super(activityClass);
		// TODO Auto-generated constructor stub
	}
}

テストケースを書こう

で、テスト対象のActivityを捕まえて、メソッドを呼び出してテストするコードを追加する。

package com.android.ritchan.arkaklelinar.test;
 
import android.test.ActivityInstrumentationTestCase2;
import com.android.ritchan.arkaklelinar.*;
 
public class GUITest extends ActivityInstrumentationTestCase2<MainActivity> {
 
	private MainActivity mMainActivity; // ★
 
	public GUITest(Class<MainActivity> activityClass) {
		super(activityClass);
		// TODO Auto-generated constructor stub
	}
 
	// ★ 各テストケースを呼ぶ前にコールされるセットアップ関数
	@Override
	protected void setUp() throws Exception {
		super.setUp();
 
		// アクティビティを取得
		mMainActivity = getActivity();
	}
 
	// ★ 先頭にtestとつけることでテストケースとして認識されるっぽい
	public void testSomeFunction() {
 
		assertEquals(mMainActivity.hogehoge(), "result");
	}
}

テストを実行しよう

プロジェクトツリーからコンテキストメニュー→Run→JUnit。

ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。