TesterMockito es una librería Java para poder crear objetos mock en las pruebas unitarias, que se integra muy bien con JUnit. Con Mockito podemos simular el comportamiento de las dependencias del objeto bajo prueba, creando así un entorno perfecto para aislar al objeto. Ya en otros artículos vimos como empezar a usar Mockito en nuestros proyectos. Sin embargo, el API de Mockito no se adapta bien a los conceptos de BDD... ¡bienvenido BDDMockito! 

Pruebas unitarias con sabor a BDD - La plantilla definitiva

Uno de los conceptos de BDD es dividir las pruebas en 3 grandes secciones: 

Dado ,
Cuando,
Entonces

(o en inglés, given - when - then).

Lo interesante es que podemos estructurar nuestras pruebas unitarias con el formato given - when -then, más allá de BDD. De esta manera, nuestras pruebas unitarias quedarán más simples de leer y ordenadas. Con 3 simples comentarios podemos dividir estas secciones en una prueba cualquiera.

Entonces, podemos crear la "Plantilla Definitiva para JUnit", de manera muy sencilla:

 
@Test
public void unMetodoDePrueba() {
 
    //given
 
    //when
 
    //then
 
}
 

BDDMockito

¿Y qué tiene que ver BDDMockito en todo esto? Evidentemente podemos usar la plantilla anterior con cualquier cosa... el tema es que el API de Mockito usa la palabra "when" en sus expresiones para declarar el escenario (el cual forma parte del given). BDDMockito es una clase que simplemente presenta el método given(Object) para que quede bien integrado con los conceptos de BDD. Es decir, es un simple cambio cosmético que simplifica la legibilidad del código.

De esta manera, con BDDMockito podemos escribir: 

 
 import static org.mockito.BDDMockito.*;
 
 Vendedor vendedor = mock(Vendedor.class);
 Negocio negocio = new Negocio(vendedor);
 
 @Test
 public void comprarPan() throws Exception {
   //given  
   given(vendedor.buscarPan()).willReturn(new Pan());
 
   //when
   Compra compra = negocio.comprarPan();
 
   //then
   assertThat(compra, contienePan());
 }
 

Aprender más

  • No se han encontrado comentarios

Deja tus comentarios

Post comment as a guest

0

Seguinos en Facebook.

Publicá tus artículos.

Publicar Convertite en redactor para Dos Ideas y compartí tus conocimientos a una comunidad que sigue creciendo!
Quiero publicar

Los Comentarios.

Hanna Taller
Measure indicators of your commercial performance with mobile applications android and ios using ric...
Alinamike
Great step you have define it is really helpful for all developer making a website
Dai
Es broma?
busquen el significado de cinismo.
esta el antiguo significado y el moderno,
el moderno...
Yan
Hola:
Unas duda, Drools ¿tiene una interfaz gráfica para poder generar y editar reglas? o todo se t...
Maxi
Gracias por la info, esta bien explicado y funciono como solución a mi problema que tenia con el mét...

Inspiración.

"Si tú tienes una manzana y yo tengo una manzana e intercambiamos las manzanas, entonces tanto tú como yo seguiremos teniendo una manzana cada uno. Pero si tú tienes una idea y yo tengo una idea, e intercambiamos las ideas, entonces ambos tendremos dos ideas"

Bernard Shaw