【发布时间】:2017-09-15 15:04:00
【问题描述】:
我想编写一个单元测试来测试 JsonProcessingException。这个异常可能发生在以下行:mapper.writeValueAsString()。
public void myMethod(Args...) {
try {
ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.INDENT_OUTPUT, true);
Document.parse(mapper.writeValueAsString(testObject)));
}
} catch (JsonProcessingException e) {
log.error("Error parsing the object to json string. ", e);
}
}
这是我的单元测试:
public class Test {
@Mock
private ObjectMapper mapper;
@InjectMocks
ClassUnderTest sut;
@Test
public void testJsonProcessingException() throws JsonProcessingException {
when(mapper.writeValueAsString(Mockito.any())).thenThrow(new JsonProcessingException("Error parsing the object to json string. "){
private static final long serialVersionUID = 1L;});
sut.myMethod(args...);
}
}
问题是我模拟的映射器将不会被使用(我得到不必要的 Mockito 存根失败),因为映射器在方法内再次初始化。如何使用 mockito 对这种情况进行单元测试?
【问题讨论】:
标签: java json unit-testing mocking mockito