如何触发Java单元测试的JsonProcessingException?

问题描述 投票:0回答:1

[我在一个名为“ 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

java unit-testing jackson jsonexception
1个回答
0
投票

[当您进行单元测试时,您不关注基础代码如何创建异常,而是关注代码如何处理此类异常。在这方面,您可以模拟ObjectNode对象,并在调用put方法时要求它引发异常。

© www.soinside.com 2019 - 2024. All rights reserved.