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);
}
}
添加回答
举报