[我在一个名为“ 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并在httpResponse参数内为Key Value对插入一个String。
我尝试在mapper上使用Mockito返回格式错误的JSON,但看起来它将值写为String并每次都通过。
有人有什么建议吗,或者有简单的方法吗?感谢您抽出宝贵的时间阅读此问题,可能会对我有所帮助:D
[当您进行单元测试时,您不关注基础代码如何创建异常,而是关注代码如何处理此类异常。在这方面,您可以模拟ObjectNode
对象,并在调用put
方法时要求它引发异常。