Robolectric3.4.2+Powermock1.7.3でのテスト (2017版)
今まで何度か検証してみましたが、情報が2013年度と古く今で実際使えるのが微妙だったので2017年度版としてチャラい調査をしてみました
今まで何度か検証してみましたが、情報が2013年度と古く今で実際使えるのが微妙だったので2017年度版としてチャラい調査をしてみました
https://groups.google.com/forum/#!topic/robolectric/xsOpEwtdTi4 にあるように元はJake Wharton氏が開発されていてdeprecatedになっていたgradle-android-test-pluginをrobolectric開発チームによってメンテされるようになった模様
てな訳でgradle-android-test-pluginを使いつつの、robolectricでの単体テスト及びespressoによるUIテストをやってみる
GradleのRobolectricテスト用プラグインとして、非推奨になったJake氏のgradle-android-test-pluginではなくNovoda氏のrobolectric-pluginを使っているサンプル http://t.co/lgPqRqbHHE …
— なかざん@ミラ・イース現象だ!!! (@Nkzn) 2014, 2月 17
っていう事でrobolectric-pluginっていうのがあるっては知ってはいたんですが、どうも上手く行かなずな感じで。まぁ一回は挫折したんですが再チャレンジでようやくテストの実行が出来たのでメモっておく
参考: http://starzero.hatenablog.com/entry/2013/12/22/201149
gradle-android-test-pluginがいつの間にかDEPRECATEDになっているっていうのを知らずに(ry まぁ他に手段ってのもなかなかなものなので、とりあえずRobolectric演習的に使ってみる
Robolectricなテストプロジェクトをgradleで動かすなネタと若干似てますけど、こっちではandroid toolkitなgradleプラグインを用いてAndroidアプリをビルドする、testタスクを利用してsrc/test/javaにあるクラスをRobolectric利用でテストを実行するっていう方式をやってみた
但し、android用のgradle pluginだとかrobolectricなgradle pluginはある模様だけどそれを使わずに素のbuild.gradleだけでごちゃごちゃとやってみた
Robolectric+powermockitoでRobolectricを利用している際におけるstaticメソッドのモック化っていうのを書いたけど、単純にRobolectric+Mockitoを使ったインスタンスメソッドのモック化に関してはスルーしてたので色々検証
参考: http://addie9000.blogspot.jp/2012/12/robolectricpowermockandroidunit-test.html
Robolectricを使ってJUnit4ベースでテストしたいけど、PowerMockitoを使ってstaticメソッドをテストしたいって思ってもRobolectric自体が@RunWith(RobolectricTestRunner.class)を使うので、PowerMockitoのPowerMockRunner.class指定出来ないよねっていう事で上記の参考にRobolectricでのPowerMockitoの動かし方参考にしつつやってみた。ただ気になる事の検証的な目的かなと
※但し、上記の参考のRobolectricバージョン(1.1)とこの記事のバージョン(2.2)は違う