「既存プロジェクトへのテスト追加」の編集履歴(バックアップ)一覧はこちら
「既存プロジェクトへのテスト追加」(2013/12/16 (月) 12:37:57) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
うまくいってないっす。。。orz
* 概要
Androidアプリの開発で、ロジック周りの検証を行いたいが、リリース用のプロジェクトにはテストコードが込められない。&br;
そんなときには開発環境(Java SDKかなぁ?)が提供するテスト機能を使ってロジックチェックを行えばよい。&br;
今回使用するのはユニットテストフレームワークとして名高いxUnitシリーズのJava用、&bold(){JUnit}である。
&br;
&br;
--参考資料
今から5分で,開発中のAndroidアプリを単体テストしよう (JUnitで自動テストする方法)
http://d.hatena.ne.jp/language_and_engineering/20130121/UnitTestOfAndroidAppOnEclipse
* 用意するもの
-- テスト対象となる既存のAndroidプロジェクト
-- 時間とお金(あれば)
&br;
JUnitはEclipseとかAndroidSDKとかインストールしている中で一緒にインストールされているらしい。&br;
よって別段準備するものはない。ありがたい。&br;
&br;
* テストプロジェクトを追加する
方法は2つある。
+ テスト用のプロジェクトを起こす方法
+ 既存のプロジェクトにテスト用パッケージを追加する方法
&br;
今回は2番目でやってみる。&br;
&br;
** パッケージを作ろう
既存のプロジェクトに対してコンテキストメニューからNew→Package。&br;
今回はテスト対象のパッケージに「.test」のサフィックスをつけた名前にした。&br;
** テストを行う側のクラスを作ろう
&bold(){この節では、Activityのクラスをターゲットにしたテストを行う。}&br;
&br;
パッケージにClassをNew。&br;
SuperClassにActivityInstrumentationTestCase2を選択して継承させる。&br;
自動生成されたソースの中の、テンプレート部分<T>に、ターゲットとなるクラス名をいれる。&br;
そのままだと参照できないので、import文を追加する。&br;
↓こんな感じ。&br;
#highlight(java){{{
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を捕まえて、メソッドを呼び出してテストするコードを追加する。
#highlight(java){{{
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。