Android開発するときにテスト絡みで調べたことまとめ
追記系。
- デフォのテストは重くてきつすぎるっす
これ以降、ほとんどRobolectricを使う前提の話
- 画面の遷移
- RobolectricでActivityの遷移を確認する方法
- フラグなんかも以下のような感じでテストできる。
- RobolectricでActivityの遷移を確認する方法
assertThat(shadowIntent.getFlags(), is(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP));
-
-
- そのActivityがfinishしたかもテストできる。
-
assertThat(shadowActivity.isFinishing(), is(true));
- Toastの表示
assertThat( ShadowToast.getTextOfLatestToast(), equalTo("The World! Let time stand still !!!") );
- Shadowがないっぽい。
- 自分でShadowを実装する
- 他力に頼る
- Android依存なやつの場合
- そうじゃない場合
- ActionBarSherlockが・・・
- Ormlite絡みのテストをしたい
- 何もしなくて良い。心を無にしてテストをかけ。Robolectric + ormliteでUnitテスト
- Webサーバにつながないとできないテストがしたい
- こんなエラーが出た
- Stub!
- @RunWithを確認するか、DependenciesのところでRobolectricのジャーがAndroidSDKより先に読み込まれているかを確認する。
- ヌルポった
- Shadowがないか、Shadowがあっても該当メソッドが実装されてないかもしれない。
- "Checked exception is invalid for this method!"
- あらかじめthrowsとかで定義されてないExceptionをモックで投げようとすると発生する。doThrowするのをRuntimeExceptionに変えれば通るかも。
- Stub!
ところでJenkins立てたらデフォのテストを複数機種のイメージで走らせたくなってきたけど、Robolectricのテストしかないんです。これって取り返しつくの???