มีวิธีใดบ้างที่ใช้ Mockito เพื่อเยาะเย้ยวิธีการบางอย่างในชั้นเรียน แต่ไม่ใช่วิธีอื่น ๆ ?
ตัวอย่างเช่นในStock
ชั้นเรียนนี้ (ประดิษฐ์ขึ้นแล้ว) ฉันต้องการจำลองgetPrice()
และgetQuantity()
คืนค่า (ตามที่แสดงในตัวอย่างการทดสอบด้านล่าง) แต่ฉันต้องการgetValue()
ให้ทำการคูณตามรหัสในStock
ชั้นเรียน
public class Stock {
private final double price;
private final int quantity;
Stock(double price, int quantity) {
this.price = price;
this.quantity = quantity;
}
public double getPrice() {
return price;
}
public int getQuantity() {
return quantity;
}
public double getValue() {
return getPrice() * getQuantity();
}
@Test
public void getValueTest() {
Stock stock = mock(Stock.class);
when(stock.getPrice()).thenReturn(100.00);
when(stock.getQuantity()).thenReturn(200);
double value = stock.getValue();
// Unfortunately the following assert fails, because the mock Stock getValue() method does not perform the Stock.getValue() calculation code.
assertEquals("Stock value not correct", 100.00*200, value, .00001);
}