java - mock - spring boot test repository
Mockito.any() para<T> (2)
Puede hacer coincidir un argumento genérico de Class<T> usando simplemente any( Class.class ) , por ejemplo:
Mockito.when( mongoUtil.documentToPojo( Mockito.any( Document.class ),
Mockito.any( Class.class ) ) );
Aclamaciones,
Quiero burlarme de un método con firma como:
public <T> T documentToPojo(Document mongoDoc, Class<T> clazz)
Me burlo de la siguiente manera:
Mockito.when(mongoUtil.documentToPojo(Mockito.any(Document.class), Mockito.any(WorkItemDTO.class)))
Pero me sale un error como:
El método documentToPojo(Document, Class<T>) en el tipo MongoUtil no es aplicable para los argumentos (Document, WorkItemDTO)
¿Hay algún método en Mockito que me ayude a burlarse de T?
Tenga en cuenta que documentToPojo toma una Clase como segundo argumento. any(Foo.class) devuelve un argumento de tipo Foo , no de tipo Class<Foo> , mientras que eq(WorkItemDTO.class) debe devolver una Class<WorkItemDTO> como se esperaba. Lo haría de esta manera:
when(mongoUtil.documentToPojo(
Mockito.any(Document.class),
Mockito.eq(WorkItemDTO.class))).thenReturn(...);