Mockito.any() for <T>

我想模拟一个带有签名的方法:

public <T> T documentToPojo(Document mongoDoc, Class<T> clazz)

我嘲笑它如下:

Mockito.when(mongoUtil.documentToPojo(Mockito.any(Document.class), Mockito.any(WorkItemDTO.class)))

但是我得到错误是:

类型中的方法不适用于参数documentToPojo(Document, Class<T>)MongoUtil(Document, WorkItemDTO)

Mockito中有什么方法可以帮助我模拟T吗?


答案 1

请注意,将作为其第二个参数。 返回类型参数,而不是类型参数,而应按预期返回 a。我会这样做:documentToPojoany(Foo.class)FooClass<Foo>eq(WorkItemDTO.class)Class<WorkItemDTO>

when(mongoUtil.documentToPojo(
    Mockito.any(Document.class),
    Mockito.eq(WorkItemDTO.class))).thenReturn(...);

答案 2

您可以使用简单的匹配泛型参数,例如:Class<T>any( Class.class )

Mockito.when( mongoUtil.documentToPojo( Mockito.any( Document.class ),
                                        Mockito.any( Class.class ) ) );

干杯


推荐