Android: 通常実行とJUnitテスト実行で共通のロギングコードを用いる
テスト対象コードにAndroidフレームワークのコードが入っていると、JUnitテスト実行時に例外が発生します。
モック化して対処する(例外メッセージに記載されているURL先の記述通り、自動でモック化するオプションもあります)のが適切な場合もありますが、まずはじめに考えるべきことは、Androidフレームワークに依存しない処理に切り出し、それをテスト対象とする、ということでしょう。java.lang.RuntimeException: Method e in android.util.Log not mocked. See https://sites.google.com/a/android.com/tools/tech-docs/unit-testing-support for details.
at android.util.Log.e(Log.java)
at yukihane.dq10don.login.LoginJsonParse.processHTML(LoginJsonParse.java:32)
at yukihane.dq10don.login.LoginJsonParseTest.testProcessHTML(LoginJsonParseTest.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
dependencies {
(略)
compile 'org.slf4j:slf4j-android:1.7.12'
testCompile 'org.slf4j:slf4j-simple:1.7.12'
}
« Android Studio1.2.2 でJUnitテストケースからリソースを参照できない | トップページ | ここが変だよ android.util.Log »
この記事へのコメントは終了しました。
トラックバック
この記事へのトラックバック一覧です: Android: 通常実行とJUnitテスト実行で共通のロギングコードを用いる:
» yet another slf4j android binding, for testing [発火後忘失]
以前「ここが変だよ android.util.Log」 というエントリで、android.util.Log及びその仕様を引きずったslf4j-androidはちょっと使いづらいと書きました。 簡単に言うと、デバッグ目的でログを出すのに使うのだから、ログレベルを簡単に変えられるべきだがそうはなっていない、ということです。 で、できないならできるようにしちゃえ、ということで自分向けにslf4j-and... [続きを読む]
« Android Studio1.2.2 でJUnitテストケースからリソースを参照できない | トップページ | ここが変だよ android.util.Log »
コメント