У меня есть класс с именем Item.
public class Item {
private int code;
private String name;
private double price;
private int quantity;
public Item(int code, String name, double price, int quantity) {
setCode(code);
setName(name);
setPrice(price);
setQuantity(quantity);
}
//Item getters and setters
И у меня есть класс с именем Stock, который создает ArrayList элементов.
public class Stock {
private ArrayList<Item> stock;
public Stock() {
stock = new ArrayList<Item>();
}
public ArrayList<Item> getStock() {
return stock;
}
У меня также есть класс с именем ItemRegister, которыйдобавление предмета в запас.
public class ItemRegister extends Stock {
public void registerItem(String name, double price) {
getStock().add(new Item(setItemCode(), name, price, 0));
}
private int setItemCode() {
return getStock().size() + 1;
}
Я использую юнит-тесты, чтобы проверить, добавлю ли я предмет в запас.
public class ItemRegisterTest {
@Test
public void testIfHasRegisteredItemInStock() {
Stock s = new Stock();
assertTrue(s.getStock().size() == 0);
ItemRegister i = new ItemRegister();
i.registerItem("Oleo", 20.0);
assertTrue(s.getStock().size() == 1);
}
}
Когда я запускаю эти тесты, возвращается ошибка.На втором assertTrue
, если я протестирую с объектом i
, он вернет true, но я хочу добавить к Stock
, а не ItemRegister
, потому что если позже я захочу обратиться к Stock
, я будузвоните Stock
а не ItemRegister
.