sos の 作業メモ

プログラミングや英会話学習、マイルや旅行、日常生活など。最近はWebFormなASP.NETのお守りがお仕事です。

日々の生活にhappyをプラスする|ハピタス Gポイント

「Androidアプリ テスト技法」第3章その2

Androidアプリテスト技法

Androidアプリテスト技法

前回の続き

Activityのテスト

ActivityUnitTestCase

ビジネスロジックをテストする際に利用するテストケース。startActivityで対象のActivityを開始する。 対象のActivityがstartActivity()/startActivityForResult()で別のActivityを起動した場合、 getStartedActivityIntent()でそのIntentを取得できる。

また、startActivityForResultの第二引数の値を取得する場合は、getStartedActivityRequest()を使う。

テスト対象Acrivityのインスタンス取得

  • ActivityUnitTestCase#startActivity()

    getActivityは startAcitivityで作成した後にしか使えない。

  • ActivityInstrumentationTestCase2#startActivity()

    startActivityIntent(...)なら、Intentを渡せる

対象Activityが他のActivityから起動されるテスト

結局ActivityUniteTestCase#startActivityでIntentを渡してActivityを取得するだけ。

finish()が実行されているかどうかの確認

ActivityUniteTestCase#isFinishCalled()を呼ぶ

UI操作による状態変化を確認するテスト

ActivityInstrumentationTestCase2では、UI操作を含めたテストを行う。

テストはUIスレッドとは別のスレッドで実行されるため、UIの操作をするためには Activity#runOnUiThread()で処理を実行する必要がある。

TouchUtilsを使ったテスト

TouchUtilsを使うと、UIスレッドでのユーザー操作を簡単にエミュレートできる。

Robotiumによる結合テスト

UI操作を伴うテストを簡潔にするためのフレームワーク

Robotiumプロジェクト

Activityの呼び出し等も楽に行えるので、テストの記述が楽になる。


3章の半分が終了。あともーちょっと。 今までめんどくさくて androidのみっちりしたテストを書くのは避けてたんですが、 結構簡単に書けるもんですね。

心を入れ替えて真面目に書くようにします…

次回へ続く