2 回答

TA貢獻1816條經驗 獲得超6個贊
從評論中,您可以做的可能是更改父子關系并讓 ItemRegister 持有 Stock 對象的實例。因此,您可以像這樣修改 ItemRegister 類:
public class ItemRegister {
Stock s;
public ItemRegister(Stock s) {
this.s = s;
}
public void registerItem(String name, double price) {
s.getStock().add(new Item(setItemCode(), name, price, 0));
}
private int setItemCode() {
return s.getStock().size() + 1;
}
}
然后,您最初編寫的測試代碼只需稍作修改即可為真ItemRegister i = new ItemRegister(s);,并且您可以在 Stock 對象的一個實例上工作。

TA貢獻1802條經驗 獲得超5個贊
我想要的是添加Stock而不是ItemRegister因為如果以后我想咨詢Stock我會打電話給 Stock 而不是ItemRegister。
然后你需要Stock換成ItemRegister.
public class ItemRegister {
Stock stock;
public ItemRegister(Stock stock) {
this.stock = stock;
}
public void registerItem(String name, double price) {
stock.getStock().add(new Item(setItemCode(), name, price, 0));
}
private int setItemCode() {
return stock.getStock().size() + 1;
}
}
在您的單元測試中使用它,如下所示:
public class ItemRegisterTest {
@Test
public void testIfHasRegisteredItemInStock() {
Stock s = new Stock();
assertTrue(s.getStock().size() == 0);
ItemRegister i = new ItemRegister(s);
i.registerItem("Oleo", 20.0);
assertTrue(s.getStock().size() == 1);
}
}
添加回答
舉報