2010年5月8日土曜日

Androidアプリケーション Junitテストの作り方 ~その1~ 

オリジナルのAndroidアプリケーションの作成がほぼ終了し、テストの段階に入りました。
せっかくなので、Junitを使ってテストを書こうと思ったのですが、全然情報がありません。
他のみんなはJunitを使ったテストを作成しないで、リリースしているのでしょうか???
ちなみに、私が仕事で携わった(っている)Androidアプリケーションプロジェクトでは、Junitテストは通していませんw
まあ、そんなわけで、ブログ上に情報を逐次UPしていきたいと思います。
こういった知識はみなさんで共有しましょう。
iPhoneに勝つために!W
では、まず第一回目です。

    手順
  1. Eclipseを使ってTest用のアプリケーションを作成します


  2. ファイル → 新規 → Android Test Projectを選択します


  3. Test Project Name欄に作成したいテストアプリケーション名を入力します。アプリケーション名+Testが良いと思います

  4. (例)アプリケーション名 : Sample

    テストアプリケーション名 : SampaleTest



  5. Test Target項目のラジオボタンで
    An exsiting Android projectを選択します

  6. 参照ボタンを押下して、アプリケーションを選択します

  7. 自動認識されて、ビルド・ターゲット欄とプロパティ欄が埋まります。



  8. 完了ボタンを押下します

  9. テストアプリケーションプロジェクトが作成されます。



  10. プロジェクトを開くと、パッケージフォルダが作成されています


  11. まずはここに、全てのテストクラスを実行するAllTests.javaクラスを作成します



  12. import android.test.suitebuilder.TestSuiteBuilder;
    import junit.framework.Test;
    import junit.framework.TestSuite;

    public class AllTests extends TestSuite {

    public static Test suite() {
    return new TestSuiteBuilder(AllTests.class)
    .includeAllPackagesUnderHere()
    .build();
    }
    }



  13. 次に作成したいクラスのテストクラスを作成します

  14. 以下のサンプルでは、アプリケーションのTopページActivityのTop.javaの
    テストクラスを作成しています




    import java.text.SimpleDateFormat;
    import java.util.Calendar;

    import jp.co.dietrecorder.R;
    import jp.co.dietrecorder.Top;
    import android.content.Context;
    import android.test.ActivityInstrumentationTestCase2;
    import android.test.suitebuilder.annotation.MediumTest;
    import android.widget.TextView;


    public class TopTest extends ActivityInstrumentationTestCase2 {

    public TopTest() {
    super("jp.co.Sample", Top.class);
    }

    @Override
    protected void setUp() throws Exception {
    super.setUp();
    }

    /**
    * アプリケーション初期立ち上げの時のデータ確認
    */
    @MediumTest
    public void testAppicationInit() {
    assertTrue(true);
    }

    }




      この時、上記で注意しないとならないのは以下の通りです。
    • コンストラクタの引数は第一引数が「アプリケーションのフォルダ名」

      第二引数が「テスト対象クラス名」

      であること

    • テストメソッドはtest~で開始すること(アノテーションはなくても動きます)

    • publicメソッドであること

    • assertのメソッドを利用していること

    • になります。


  15. 以上がきちんと設定されていると、JUnitの緑色のバーが現れるはずです。




追記

テストクラスで継承しているActivityInstrumentationTestCase2クラスは
機能テストを行うクラスです。
単体テストはAndroidTestCaseで行えるようです。
ActivityInstrumentationTestCase2を継承すると、Activityをlaunchしてテストを
行いますが、AndroidTestCaseだとlaunchせずにテストが行えます。



私は、今回のアプリケーションではActivityInstrumentationTestCase2を利用してJunitテストを行う予定なので、
AndroidTestCaseを使ってテストをすることを考えている人は申し訳ありません。



では、次からは本格的なテストクラスを作成していきましょう



追記2
そのうちレンタルサーバーを借りてきれいにまとめます。自分でも確認したいのでw

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

1 件のコメント:

  1. こんばんは。

    iPhoneとの勝負の行く末はまだまだ先のようですね。

    返信削除

Related Posts Plugin for WordPress, Blogger...