akka-stream y mockito: el valor thenReturn no es un miembro de Nothing
Estoy tratando de simular un método que devuelve el tipo:
Future[Option[(ContentType, Long, Source[ByteString, NotUsed])]]
Lo simulo así:
when(service.fetchData(id)).thenReturn(Future.successful(
Some((ContentTypes.`application/octet-stream`, 1000, Source("Dummy Byte string")))
)
)
Pero me da un error:
value thenReturn is not a member of Nothing
when(service.fetchData(id)).thenReturn(Future.successful(
No veo ninguna discrepancia entre el valor de retorno simulado y el tipo de retorno.
¿Qué me falta aquí?
Editar: Lo solucioné con:
val source = Source.single(ByteString("Some dummy string"))
when(service.fetchData(id)).thenReturn(Future.successful(
Some((ContentTypes.`application/octet-stream`, 1000, source))
)
)
davy.ai
El problema aquí es con el tipo Source[ByteString, NotUsed]. Mockito no puede hacer una simulación directamente de este tipo. Por lo tanto, primero necesitamos crear un objeto simulado para él y luego usarlo en el método simulado.
Una forma de resolver esto es crear un objeto simulado para el tipo Source[ByteString, NotUsed], de la siguiente manera:
Luego, podemos usar este objeto simulado para crear el método simulado, de la siguiente manera:
De esta manera, estamos devolviendo el objeto simulado para el tipo Source[ByteString, NotUsed] cuando se llama al método fetchData().