ฉันจะพยายามอธิบายโดยใช้ตัวอย่างที่นี่:
// 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 ไม่ว่าขนาดจริงจะเป็นเท่าใดก็ตาม
สรุปคุณจะสอดแนม วัตถุจริงและต้นขั้ว บางส่วนของวิธีการ