У меня есть метод в классе под названием «HttpResponseHelper», который я пытаюсь выполнить для модульного тестирования, когда он выдает исключение JsonProcessingException, но у меня возникли трудности с его выполнением:
private static void populateHTTPResponseWithData(ObjectNode httpResponse)
{
ObjectMapper mapper = new ObjectMapper();
responseMapData.keySet().forEach(item -> {
try
{
httpResponse.put(item, mapper.writeValueAsString(responseMapData.get(item)));
}
catch (JsonProcessingException e)
{
LOGGER.error("Json Processing Exception", e);
}
});
}
Аргумент httpResponse имеет тип ObjectNode (библиотека Джексона), а затем внутри тела метода создается объект сопоставления из класса ObjectMapper.
ResonseMapData - это ConcurrentHashMap> из класса под названием «MessageProcessResults». Похоже, здесь он проходит через keySet и вставляет строку для пары Key Value внутри аргумента httpResponse.
Я попытался использовать mockito в картографе, чтобы вернуть искаженный JSON, но похоже, что он записывает значение в виде строки и каждый раз проходит.
Есть ли у кого-нибудь предложения или есть простой способ сделать это? Спасибо, что нашли время прочитать этот вопрос и, возможно, помогли мне: D
JsonProcessingException
, он улавливает его и регистрирует только результат. Если бы вы поместилиthrow e
в свой блок catch, он также выбросил бы его, но не продолжил бы обработку других элементов в вашемresponseMapData
при возникновении исключения. - person Mark   schedule 13.02.2020