Я хотел бы проверить, хорошо ли работает один из моих классов с объектом JSON. Для этого я решил предоставить ему JSONObject, используя среду модульного тестирования. Но он постоянно не давал желаемых результатов ... пока я не проверил поведение JSONObject в самом методе теста .
Это код:
@Test
public void checkJsonObject() {
JSONObject obj;
try {
obj = new JSONObject();
obj.put("front", "cat");
obj.put("back", "chat");
obj.put("bucket", 2);
System.out.println("Object is " + (obj == null ? "" : "not") + " null");
System.out.println("JSON content is: " + obj.toString());
} catch (JSONException e) {
e.printStackTrace();
}
}
Вот полученные результаты:
Object is not null
JSON content is: null
В то время как ожидаемый результат равен:
Object is not null
JSON content is: { "front" : "cat",
"back" : "chat",
"bucket" : 2
}
(или аналогичный).
Итак, JSONObject не является нулевым. Но метод .toString () возвращает ноль.
Что мне не хватает в коде?
В случае, если это имеет значение, зависимости приложения содержат:
testImplementation 'junit:junit:4.12'
testImplementation 'androidx.test:core:1.0.0'
testImplementation 'org.mockito:mockito-core:1.10.19'
РЕДАКТИРОВАТЬ:
Спасибо, ребята, в комментариях. testImplementation "org.json:json:20190722"
сделал работу. Может быть, кто-нибудь может дать ответ, как заставить его работать во всех случаях такого типа, так что мне не нужно искать, что не так в течение получаса ... Запуск тестов на телефоне? Включение конкретного пакета Android? Как это сделать? ... Или, по крайней мере, сделать что-то, поэтому Android Studio предупреждает, что какой-то (казалось бы) стандартный класс не реализован в тестах.