Raj*_*ure 23 java unit-testing mockito mongodb-java springmockito
我想用签名模拟一个方法:
public <T> T documentToPojo(Document mongoDoc, Class<T> clazz)
Run Code Online (Sandbox Code Playgroud)
我嘲笑它如下:
Mockito.when(mongoUtil.documentToPojo(Mockito.any(Document.class), Mockito.any(WorkItemDTO.class)))
Run Code Online (Sandbox Code Playgroud)
但我得到的错误是:
documentToPojo(Document, Class<T>)类型中的方法MongoUtil不适用于参数(Document, WorkItemDTO)
Mockito有什么方法可以帮我模拟T吗?
Jef*_*ica 34
请注意,documentToPojo将Class作为其第二个参数.any(Foo.class)返回一个类型的参数,而Foo不是类型的参数Class<Foo>,而eq(WorkItemDTO.class)应该Class<WorkItemDTO>按预期返回一个.我这样做:
when(mongoUtil.documentToPojo(
Mockito.any(Document.class),
Mockito.eq(WorkItemDTO.class))).thenReturn(...);
Run Code Online (Sandbox Code Playgroud)
您可以Class<T>使用,简单地匹配通用参数any( Class.class ),例如:
Mockito.when( mongoUtil.documentToPojo( Mockito.any( Document.class ),
Mockito.any( Class.class ) ) );
Run Code Online (Sandbox Code Playgroud)
干杯,