私はこのガイドに従いました https://sites.google.com/a/Android.com/tools/tech-docs/unit-testing-support しかし、私はこのエラーで立ち往生しています:
junit.framework.AssertionFailedError: Exception in constructor: testSaveJson (Java.lang.RuntimeException: Method put in org.json.JSONObject not mocked. See https://sites.google.com/a/Android.com/tools/tech-docs/unit-testing-support for details.
ガイドが言うようにGradleビルドで変更しましたが、違いはありません
testOptions {
unitTests.returnDefaultValues = true
}
JSONはAndroid SDKにバンドルされているので、スタブにアクセスするだけです。JSONjarを使用すると、実際のオブジェクトを使用できます。
これを行うには、これをbuild.gradleに追加する必要があります。
testImplementation 'org.json:json:20140107'
または、jarをダウンロードして含めることができます。
testCompile files('libs/json.jar')
JSONの最新バージョンはJava 8用に構築されているため、 20140107 を取得する必要があることに注意してください。
純粋なjUnit
のorg.json.JSONObject
の一部であるAndroid Framework
でテストを実行しようとしていると思います。
ドキュメントから:
単体テストの実行に使用されるAndroid.jarファイルには、実際のコードが含まれていません-実際のデバイスのAndroidシステムイメージ。代わりに、すべてのメソッドが例外をスローします(デフォルト) 。
LogやTextUtilsなどのクラスを使用する場合、デフォルトの動作に問題があることを認識しており、将来のリリースで可能なソリューションを評価します。
エミュレートする必要がありますAndroidこの目的に使用できる環境 Robolectric またはInstrumentationTests