Your SlideShare is downloading. ×
Mockito
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Mockito

1,154
views

Published on

Introducción y demo de carrito de compras usando Mockito

Introducción y demo de carrito de compras usando Mockito

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,154
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
22
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1.    
  • 2.  
    •  
  • 3. No es ....
    •  
  • 4. 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 http://mockito.org
  • 5. 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
  • 6. No da resaca
    •  
  • 7. No da resaca
    •  
  • 8. 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"
  • 9. 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();
  • 10. EasyMock vs Mockito
    • EasyMock
    •   List mock = createNiceMock(List.class);                                      expect(mock.get(0)).andStubReturn("one");      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();    
  • 11. Demo
    • Test Carrito de Compras
  • 12. Demo - Instalación
    • Maven
    • <dependencies>
      • <dependency>
        • <groupId>junit</groupId>
        • <artifactId>junit</artifactId>
        • <version>4.9</version>
        • <type>jar</type>
        • <scope>test</scope>
      • </dependency>
      • <dependency>
        • <groupId>org.mockito</groupId>
        • <artifactId>mockito-core</artifactId>
        • <version>1.9.0-rc1</version>
        • <type>jar</type>
        • <scope>test</scope>
        • </dependency>
    • </dependencies>
  • 13. 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));
      • }
    • }
  • 14. Demo
    • 1er Test :  Cuando se agrega un producto nuevo se verifica que se esté añadiendo un nuevo item a la lista
    • @Test
    • public void testAgregaProductoNuevo(){
      • when(items.get(producto)).thenReturn(null);
      • manager.agregar(producto);
      • verify(items).put((Producto)anyObject(), (Item)anyObject());
    • }
  • 15. Demo
    • 2do Test :  Cuando se agrega un producto que ya se encuentra en la lista se verifica que se incremente la cantidad para el item.
    • @Test
    • public void testAgregaProductoRepetitivo(){
      • when(items.get(any())).thenReturn(item);
      • manager.agregar(producto);
      • verify(item,times(1)).incrementaCantidad();
    • }
  • 16. Demo
    • URL :  https://github.com/Teisen/CarritoComprasMock
  • 17.  
    • Follow me!
    • Twitter: @jteisen
    • GitHub: Teisen
    • Blog: www.aulajava.com/teisen
    • e-mail : teisen@aulajava.com