ハマったのでメモ
この現象はAndroidでjUnitを実行したときに起こるそうです。
StringからJsonObject型に変換するときにJsonObjectがNullで返ってきてしまう。
JsonをパースしてModelに変換するテストを書いてる時にハマりました。
@Test
fun jsonパースがちゃんとできているかのテスト() {
val jsonObj = JSONObject("{\"key1\":\"aaaaa\",\"key2\":\"bbbbb\",\"key3\":\"ccccc\",\"key4\":\"ddddd\"}")
val item = Info.Model.perse(jsonObj)
Assert.assertEquals("aaaaa", item.key1)
Assert.assertEquals("bbbbb", item.key2)
Assert.assertEquals("ccccc", item.key3)
Assert.assertEquals("ddddd", item.key4)
}
これでテストを実行すると jsonObj
がNullで返ってきてテストが失敗します。
解決方法
app/build.gradle
に下記を追加します
testImplementation 'org.json:json:+'
これで jsonObj
がNullで返らなくてちゃんと JsonObject
型になります。