Android StudioでUnitTest
アプリのテスト | Android Studioを読んでいまさらながらにお勉強中です。 今回はローカルユニットテストとインストルメント化されたテストって何が違うのかを整理してみました。
ローカルユニットテスト
- module-name/src/test/java/
- Android Studioが動いているPCの Java 仮想マシン(JVM)上で実行される
- JUnit 4ベース
- インストルメント化されたテストに比べて高速
- 以下のどちらかを満たす必要がある
- Androidフレームワークへの依存関係がない
- Androidフレームワークへの依存関係をモックで代用できる
インストルメント化されたテスト
- module-name/src/androidTest/java/
- 実機もしくはエミュレータ上で実行される
- Instrumentation APIを使ってContextなどにアクセスできる
- ローカルユニットテストに比べて低速
Android Studioで新しくプロジェクトを作るとどちらも雛形が作られます。何が違うんだろうと思ってましたが、特性が違うんですね。
いわゆるビジネスロジック的なところはローカルユニットテストでテストし、Androidに強く依存するところやUIが絡むところはインストルメント化されたテストを使う、とい使い分けでしょうか。
関連(するかもしれない)記事
おススメ