No es....
Mockito - Mockito es una librería Java para la creación de Mock Object. - Muy usados para el testeo unitario en Test Driven Development, - Basado en EasyMock. - Es OpenSource. disponible en
Características 1. Se pueden crear mocks de interfaces y clases concretas. 2. Verificación de invocaciones (cantidad exacta, al menos una vez, órden de invocación, etc.) 3. El stack trace se mantiene limpio, ya que los errores ocurren en los assert que se hagan (y no dentro del método bajo prueba, como en EasyMock). 4. Un API más clara para crear stubs y verificaciones
No da resaca
Dan North, the originator of BDD "We decided during the main conference that we should use JUnit 4 and Mockito because we think they are the future of TDD and mocking in Java"
Fases // 1. Creación del Mock List mock = mock(List.class); // 2. Descripición del comportamiento esperado when(mock.get(0)).thenReturn("one"); when(mock.get(1)).thenReturn("two"); // 3. Ejecución del método - uso del mock someCodeThatInteractsWithMock(); // 4. Verificación verify(mock).clear();
EasyMock vs Mockito EasyMock List mock = createNiceMock(List.class); expect(mock.get(0)).andStubReturn("o ne"); expect(mock.get(1)).andStubReturn( "two"); mock.clear(); replay(mock); someCodeThatInteractsWithMock(); verify(mock); Mockito List mock = mock(List.class); when(mock.get(0)).thenReturn("one"); when(mock.get(1)).thenReturn("two"); someCodeThatInteractsWithMock(); verify(mock).clear();
Demo Test Carrito de Compras
Demo - Instalación Maven junit 4.9 jar test org.mockito mockito-core rc1 jar test
Demo Agregar un producto al carrito public void agregar(Producto producto){ Item item = items.get(producto); if(item != null){ item.incrementaCantidad(); }else{ Items.put(producto, new Item(producto)); }
Demo 1er Test: Cuando se agrega un producto nuevo se verifica que se esté añadiendo un nuevo item a la public void testAgregaProductoNuevo(){ when(items.get(producto)).thenReturn(null); manager.agregar(producto); verify(items).put((Producto)anyObject(), (Item)anyObject()); }
Demo 2do Test: Cuando se agrega un producto que ya se encuentra en la lista se verifica que se incremente la cantidad para el public void testAgregaProductoRepetitivo(){ when(items.get(any())).thenReturn(item); manager.agregar(producto); verify(item,times(1)).incrementaCantidad(); }
Demo URL :
Follow me! GitHub: Teisen Blog: