【发布时间】:2019-05-21 16:00:34
【问题描述】:
我正在尝试对 catch 块进行单元测试,以使用 jackson 将 List 转换为 Json 格式。这是我的代码:
public String convert(List<POJO> list) {
ObjectMapper objectMapper = new ObjectMapper();
try {
data = objectMapper.writeValueAsString(list);
} catch (JsonProcessingException exception) {
System.out.println("Exception message: {}", exception.getMessage());
}
return data;
}
我尝试过这样的单元测试:
@Mock
ObjectMapper mockObjectMapper;
@Test(expected = JsonProcessingException.class)
public void doThrowException() throws JsonProcessingException {
doThrow(JsonProcessingException.class).when(mockObjectMapper).writeValueAsString(any());
dataTransformer.convert(new ArrayList<>());
verify(mockObjectMapper.writeValueAsString(any()));
}
我一直在努力研究这个单元测试以实现全面覆盖。我查了几篇关于 SO 的文章,但没有运气。由于我是单元测试领域的新手,我有一种感觉,我肯定在这里遗漏了一些东西。
【问题讨论】:
-
当您在方法中创建新实例时,您无法模拟 objectmapper。需要传入/注入
标签: java json unit-testing exception mockito