Apakah ada cara, menggunakan Mockito, untuk mengejek beberapa metode di kelas, tetapi tidak yang lain?
Sebagai contoh, dalam kelas ini (diakui dibuat-buat) Stock
saya ingin mengejek getPrice()
dan getQuantity()
mengembalikan nilai (seperti yang ditunjukkan dalam cuplikan tes di bawah) tetapi saya ingin getValue()
melakukan penggandaan seperti yang dikodekan di Stock
kelas.
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);
}