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(...);