「Androidアプリ テスト技法」第3章その1
- 作者: 生路茂太,井芹洋輝,神原健一,長谷川孝二,松木晋祐,宮田友美,吉澤毅
- 出版社/メーカー: 秀和システム
- 発売日: 2013/02
- メディア: 単行本
- この商品を含むブログ (2件) を見る
ずいぶん間があきましたが、プラクティスを片付けてこの本も一気に終了させるとします。
3章 Android テスト Tips
ロジックのテスト
JUnit3を使ってロジックのテストを行う。
テストを実行するために大切なことは、ロジックから依存関係を極力なくすこと。 Activityにロジックを埋め込むと、テストを実行するのにActivityまでが必要となる。こういったものはテスト可能な単位に切り出しておくようにする。
Androidでのテストコード
AndroidTestCaseを使って簡単なユニットテストを行ってみる
- テストクラスはandroid.test.AndroidTestCaseクラスを継承していること(junit.framework.TestCaseのサブクラスであること)
- テストクラスのアクセス修飾子はpublicであること
- テストメソッドのアクセス修飾子はpublicであること
- テストメソッドは戻り値、引数を持たないこと
- テストメソッド名はtestで始まること
JUnit3が提供するassertメソッド
- assertEquals 比較対象が等価か(equalsメソッドでの比較)
- assertNull 比較対象がnullであるか
- assertNotNull 比較対象がnullでないか
- assertTrue 比較対象がtrueであるか
- assertFalse 比較対象がfalseであるか
- assertSame 同じインスタンスか(==での比較)
- assertNotSame 違うインスタンスか(!=での比較)
- fail テストを意図的に失敗させる
MoreAsserts
AndroidSDKには、MoreAssertsという拡張されたクラスがある。配列やコレクション、正規表現の検証も可能な優れもの。
その他の注意
- 実装した当人であっても、時間の経過とともにテストコードの中身を忘れてしまうので、テストメソッド名やメッセージは適切なものにすること
- テストクラスはメソッド毎にインスタンスかされる。またテストメソッドの実行順序は保証されない
- テストメソッドを実行する前の処理はTestCase#setUp(), 後の処理はTestCase#tearDown()をoverrideして記述する
- 例外をテストするときは、例外の発生を期待する処理をtry~catchで囲み、例外が発生しない時にfailメソッドでテストが失敗するようにする
- 外部Jarを組込むならlibsの下がよい(ADT17からはlibsの下のライブラリを自動的に依存ライブラリとしてくれるらしい)。libs以外の場所にライブラリを追加した場合は、Java Build Pathでexportの指定を追加する必要がある
Androidのテストに関しては公式のこの辺と、和訳のこの辺が参考になりました。
ざっとクラスを眺めてみましたがいろいろあります。
テストケースクラス
- AndroidTestCase - 汎用のテストケースクラス
- ApplicationTestCase - Applicationオブジェクトのテストケースクラス
- InstrumentationTestCase - テストケースの中でInsturumentationメソッドを使用する場合に使う
アサーションクラス
- Assert - 比較テストに失敗した時にassertionを投げるクラス
- MoreAsserts - 配列やコレクション、正規表現でマッチングを行うassertionが含まれている
- ViewAsserts - ビューに関するassertionで役立つ
モックオブジェクトクラス
Context,ContentProvider,ContentResolver,Serviceといったシステムのモックオブジェクトを提供している
- MockContentResolver
- MockContext
- MockContentProvider
- MockCursor
- MockDialogInterface
- MockPackageManager
- MockResources
テスト用Context
Androidは便利な2つのcontextクラスを提供している
- IsolatedContext
- RenamingDelegatingContext
JUnitもちゃんと勉強したかったので↓をポチってみましたが読む暇あるかな・・
JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)
- 作者: 渡辺修司
- 出版社/メーカー: 技術評論社
- 発売日: 2012/11/21
- メディア: 単行本(ソフトカバー)
- 購入: 14人 クリック: 273回
- この商品を含むブログ (51件) を見る