I want to mock a method with signature as:
public <T> T documentToPojo(Document mongoDoc, Class<T> clazz)
I mock it as below:
Mockito.when(mongoUtil.documentToPojo(Mockito.any(Document.class), Mockito.any(WorkItemDTO.class)))
But I get error as:
The method documentToPojo(Document, Class<T>)
in the type MongoUtil
is not applicable for the arguments (Document, WorkItemDTO)
Is there any method in Mockito which will help me mock for T?
Note that documentToPojo
takes a Class as its second argument. any(Foo.class)
returns an argument of type Foo
, not of type Class<Foo>
, whereas eq(WorkItemDTO.class)
should return a Class<WorkItemDTO>
as expected. I'd do it this way:
when(mongoUtil.documentToPojo( Mockito.any(Document.class), Mockito.eq(WorkItemDTO.class))).thenReturn(...);
You can match a generic Class<T>
argument using simply any( Class.class )
, eg.:
Mockito.when( mongoUtil.documentToPojo( Mockito.any( Document.class ), Mockito.any( Class.class ) ) );
Cheers,
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With