Trataré de explicar usando un ejemplo aquí:
// Difference between mocking, stubbing and spying
@Test
public void differenceBetweenMockingSpyingAndStubbing() {
List list = new ArrayList();
list.add("abc");
assertEquals(1, list.size());
List mockedList = spy(list);
when(mockedList.size()).thenReturn(10);
assertEquals(10, mockedList.size());
}
Aquí, teníamos un objeto real inicial list
, en el que agregamos un elemento y esperamos que el tamaño sea uno.
Nos espía significado objeto real que podemos instruir a qué método se apagó . Por lo tanto, declaramos que aplicamos el método, size()
en un objeto espía que devolverá 10, sin importar el tamaño real.
En pocas palabras, espiarás objetos reales y tropezarás con algunos de los métodos .