うまくいってないっす。。。orz
Androidアプリの開発で、ロジック周りの検証を行いたいが、リリース用のプロジェクトにはテストコードが込められない。
そんなときには開発環境(Java SDKかなぁ?)が提供するテスト機能を使ってロジックチェックを行えばよい。
今回使用するのはユニットテストフレームワークとして名高いxUnitシリーズのJava用、
JUnit
である。
今から5分で,開発中のAndroidアプリを単体テストしよう (JUnitで自動テストする方法) http://d.hatena.ne.jp/language_and_engineering/20130121/UnitTestOfAndroidAppOnEclipse
方法は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。