Estoy intentando burlarme de un método para ver si manejo una excepción correctamente. Esto es lo más lejos que puedo llegar.Excepción de mockito en doThrow que parece correcta
interfaz:
interface SampleManager {
void deleteVariome(String specimenId, String analysisId) throws Exception;
// ...
}
prueba de unidad:
// ...
SampleManger sampleManager = mock(SampleManager.class);
// below is line 753
doThrow(Exception.class).when(sampleManager).deleteVariome(sample1.getId(), analysisId);
resultado:
org.mockito.exceptions.misusing.UnfinishedStubbingException:
Unfinished stubbing detected here:
-> at ...server.ArchiveManagerImplUTest.deleteVariomeFails(ArchiveManagerImplUTest.java:753)
E.g. thenReturn() may be missing.
Examples of correct stubbing:
when(mock.isOk()).thenReturn(true);
when(mock.isOk()).thenThrow(exception);
doThrow(exception).when(mock).someVoidMethod(); <-- this looks a log like what I did!
Hints:
1. missing thenReturn()
2. you are trying to stub a final method, you naughty developer! <-- I have a lot of other mocks of this interface in this test that work.
No, desde Mockito 1.9.0 en adelante, se puede suministrar la clase de excepción, y funcionará como esperado.Sin embargo, incluso si el OP está usando una versión anterior de Mockito, no obtendrían el síntoma que están describiendo aquí. Creo que el problema es algo diferente. –
Gracias David. No lo sabía Dejaré mi respuesta aquí para que otros puedan estar al tanto de tu comentario. –