我有一个我想要测试的方法。这种方法可以抛出异常。
mapper.mapToDTO(fragment.getDTO(), new ElementHandler());
我想测试一下Exception之后会发生什么。所以我做了一个Mocked测试:
when(mapper.mapToDTO(dto, Mockito.any(ElementHandler.class))).thenThrow(
new MappingFailureException());
不幸的是,这种嘲弄并不好。我也知道Mockito.any部分不好。我的目标是调用MappingFailureException
如何映射类的类型的Object,如果给出任何类型的ElementHandler
类作为参数,我的异常会被抛出?
答案 0 :(得分:1)
试试这个
when(mapper.mapToDTO(Mockito.eq(dto), Mockito.any(ElementHandler.class))).thenThrow(
new MappingFailureException());
答案 1 :(得分:1)
考虑使用mapper嘲笑......
Mapper mapper = mock(Mapper.class);
哟可以做这样的尝试(它应该与你的测试相同)
doThrow(new MappingFailureException()).when(mapper).mapToDTO(dto, Mockito.any(ElementHandler.class));
如果没有,您可以使用mockito构建自定义答案(在示例中,它返回一个字符串,但将其更改为mapToDTO的返回值)
when(mapper.mapToDTO(dto, Mockito.any(ElementHandler.class))).thenAnswer(new Answer<String>() {
@Override
public String answer(InvocationOnMock invocation) throws Throwable {
throw new MappingFailureException();
}
});
希望它有所帮助!