【发布时间】:2015-05-27 10:20:02
【问题描述】:
我想模拟一个带有签名的方法:
public <T> T documentToPojo(Document mongoDoc, Class<T> clazz)
我模拟如下:
Mockito.when(mongoUtil.documentToPojo(Mockito.any(Document.class), Mockito.any(WorkItemDTO.class)))
但我得到错误:
MongoUtil 类型中的方法documentToPojo(Document, Class<T>) 不适用于参数(Document, WorkItemDTO)
Mockito 中有什么方法可以帮助我模拟 T 吗?
【问题讨论】:
-
为什么要mock第二个参数?
-
其实我想为这个方法返回模拟对象。我不是在嘲笑第二个参数。我在嘲笑 documentToPojo 方法
-
对不起,我试图表达,这行不通吗?
Mockito.when(mongoUtil.documentToPojo(Mockito.any(Document.class), WorkItemDTO.class))没有第二个any? -
就像
Mockito.any(Document.class)说接受任何Document,当你真的想接受任何Class时,你的第二个参数说接受任何WorkItemDTO。正如下面的答案所说,使用Mockito.any(Class.class)。 -
@GáborBakos:是的,但你需要一个
eq()包装器。如果一个参数使用 Mockito 匹配器,则它们都必须使用 Mockito 匹配器。
标签: java unit-testing mockito mongodb-java springmockito