Mockito.any() 对于 <T>
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)))
但我收到错误:
类型 MongoUtil
中的方法 documentToPojo(Document, Class<T>)
不适用于参数 (Document, WorkItemDTO)
Mockito 中是否有任何方法可以帮助我模拟 T?
您可以使用简单的 any( Class.class )
匹配通用 Class<T>
参数,例如:
Mockito.when( mongoUtil.documentToPojo( Mockito.any( Document.class ),
Mockito.any( Class.class ) ) );
干杯,
请注意,documentToPojo
将 Class 作为其第二个参数。 any(Foo.class)
return 是 Foo
类型的参数,而不是 Class<Foo>
类型的参数,而 eq(WorkItemDTO.class)
应该 return 是预期的 Class<WorkItemDTO>
.我会这样做:
when(mongoUtil.documentToPojo(
Mockito.any(Document.class),
Mockito.eq(WorkItemDTO.class))).thenReturn(...);
您可以使用符合类型的 ArgumentMatchers.any() 来完成,如下所示:
Mockito.when(
mongoUtil.documentToPojo(
Mockito.any(Document.class),
ArgumentMatchers.<Class<WorkItemDTO>>any()
)
).thenReturn(...);
我想模拟一个签名为的方法:
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?
您可以使用简单的 any( Class.class )
匹配通用 Class<T>
参数,例如:
Mockito.when( mongoUtil.documentToPojo( Mockito.any( Document.class ),
Mockito.any( Class.class ) ) );
干杯,
请注意,documentToPojo
将 Class 作为其第二个参数。 any(Foo.class)
return 是 Foo
类型的参数,而不是 Class<Foo>
类型的参数,而 eq(WorkItemDTO.class)
应该 return 是预期的 Class<WorkItemDTO>
.我会这样做:
when(mongoUtil.documentToPojo(
Mockito.any(Document.class),
Mockito.eq(WorkItemDTO.class))).thenReturn(...);
您可以使用符合类型的 ArgumentMatchers.any() 来完成,如下所示:
Mockito.when(
mongoUtil.documentToPojo(
Mockito.any(Document.class),
ArgumentMatchers.<Class<WorkItemDTO>>any()
)
).thenReturn(...);