Я попытаюсь объяснить здесь на примере:
// 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());
}
Здесь у нас был исходный реальный объект list
, в который мы добавили один элемент и ожидали, что размер будет единым.
Мы шпионим за реальным объектом, что означает, что мы можем указать, какой метод заглушить . Так что мы объявили , что мы погасили метод - size()
на объекте шпиона , который будет возвращать 10, независимо от того , что фактического размера.
В двух словах, вы будете шпионить реальный объект и незавершенные некоторые из методов .