Mockito parece ser un marco de anotación/burlarse bastante dulce para Java. El único problema es que no puedo encontrar ninguna documentación concreta sobre las mejores formas de usar su API. Los métodos más comunes utilizados en las pruebas incluyen:Formando las "gramáticas" de Mockito
doXXX(???) : Stubber
when(T) : OngoingStubbing
then(T) : OngoingStubbing
verify(???) : T
given(T) : BDDOngoingStubbing
willXXX(???) : BDDStubber
Cuando vea ejemplos de Mockito en la práctica, se ve un código como:
when(yourMethod()).thenReturn(5);
De todos los documentos que he leído, he identificado varios " patrones "de las gramáticas de Mockito" obtenidos de la conexión en cadena de estas llamadas a métodos como el ejemplo anterior. Algunos patrones comunes que he encontrado son:
cuando/luego:. cuando (yourMethod()) thenReturn (5);
Given/Will: dado (yourMethod()). WillThrow (OutOfMemoryException.class);
Do/When: doReturn (7) .when (yourMock.fizzBuzz());
Will/Given/Do: willReturn (any()). Given (yourMethod()). DoNothing();
Verificar/Do: verificar (yourMethod()). DoThrow (SomeException.class);
Lo que me estoy ahogando es cómo seleccionar el patrón correcto/combinación de llamadas a métodos para modelar mis casos de prueba. Parece que puedes encadenarlas en combinaciones aparentemente infinitas y no estoy seguro de cuál es el patrón correcto para cada problema.
¿Puede algún Mockito Guru arrojar algo de luz sobre qué patrones/combinaciones de métodos de Mockito se utilizan para qué tipos de casos de prueba (y por qué)? ¡Gracias por adelantado!
+1 También está la sintaxis [BDD] (http://mockito.googlecode.com/svn/branches/1.8.0/javadoc/org/mockito/BDDMockito.html). –
@Garret Hall: gracias por el puntero. Nunca he usado esta clase, pero sospecho que es porque nunca he tenido que :) – Matt
¿Estás seguro de que 'given' y' will' no están en Mockito 1.9.0 y versiones posteriores? Creo que están en la clase 'BDDMockito'. –