Я делаю действительно простую вещь, но сталкиваюсь с какой-то проблемой. Так что написал один действительно простой метод, который берет один JsonObject и на основе ключа извлекает JsonArry. Работает нормально, но когда я пытаюсь написать юнит-тест, то сталкиваюсь с проблемой. Таким образом, следующий метод, который необходимо проверить.
public String getA(JSONObject jsonObject) {
JSONArray educationsArray = jsonService.getJsonArray(jsonObject, "a");
}
public String getB(JSONObject jsonObject) {
JSONArray educationsArray = jsonService.getJsonArray(jsonObject, "b");
}
вот модульный тест, который я пытаюсь написать.
String json = fileUtil.readFile("data.json");
String content = (String) new JSONObject(json).get("data");
JSONObject contentJson = new JSONObject(content);
when(jsonLinkExtractorService.getJsonArray(contentJson, "a")).thenReturn(jsonArray);
он читает json файл для данных, извлекает тип данных элемента, который снова json полезную нагрузку, и, наконец, создает новый JSONObject с извлеченной строкой. После всего этого выполнил простую насмешку над вновь созданным объектом json и передал ключ.
не при фактическом вызове метода, тогда он возвращает ноль. Вероятно, причина в том, что объект JsonObject отличается для Mockito, поэтому не может соответствовать. Когда я изменил эти два параметра на any (), any (), то он работает find, но затем он не фильтруется по ключу. Так может кто-нибудь помочь мне, или как-то Mockito может сопоставить два вновь созданных объекта, или я могу издеваться, как в следующем утверждении.
any(), "a"
Я пытался, но выдает исключение. Может ли кто-нибудь помочь мне в этом.
Спасибо