Je veux me moquer d'une méthode avec signature comme:
public <T> T documentToPojo(Document mongoDoc, Class<T> clazz)
Je me moque comme ci-dessous:
Mockito.when(mongoUtil.documentToPojo(Mockito.any(Document.class), Mockito.any(WorkItemDTO.class)))
Mais je reçois une erreur comme:
La méthode documentToPojo(Document, Class<T>)
de type MongoUtil
n'est pas applicable pour les arguments (Document, WorkItemDTO)
Y a-t-il une méthode dans Mockito qui m'aidera à me moquer de T?
Notez que documentToPojo
prend un Class comme deuxième argument. any(Foo.class)
renvoie un argument de type Foo
, pas de type Class<Foo>
, tandis que eq(WorkItemDTO.class)
doit renvoyer un Class<WorkItemDTO>
comme prévu. Je le ferais de cette façon:
when(mongoUtil.documentToPojo(
Mockito.any(Document.class),
Mockito.eq(WorkItemDTO.class))).thenReturn(...);
Vous pouvez faire correspondre un argument générique Class<T>
En utilisant simplement any( Class.class )
, par exemple:
Mockito.when( mongoUtil.documentToPojo( Mockito.any( Document.class ),
Mockito.any( Class.class ) ) );
À votre santé,