我想測驗它是否使用 Junit 將所有元素添加到組陣列中。
這是代碼:
public class Group{
private String groupName;
private ArrayList<Item> group = new ArrayList<Item>();
public Group(String groupName) {
super();
this.groupName = groupName;
}
public String getGroupName() {
return groupName;
}
public void setGroupName(String groupName) {
this.groupName = groupName;
}
public void addItem(Item item) {
group.add(item);
}
public Item getItem(int index) {
return group.get(index);
}
public String toString(boolean includePrice) {
String string = "Group \"" groupName "\" contains...\n";
for (int i = 0; i < group.size(); i ) {
Item item = group.get(i);
String itemString = includePrice? item.toString() : item.getDisplayName();
string = string (i 1) ") " itemString "\n";
}
return string;
}
}
uj5u.com熱心網友回復:
有兩種方法可以測驗 addItem 方法是否將所有元素添加到組陣列中-
第一種方式
像這樣創建一個方法 getItems
public List<Item> getItems() {
return group;
}
并在 junit 測驗中呼叫 getItems 方法來檢查是否添加了所有元素
@Test
void shouldAddAllItems1() {
Group group = new Group("group1");
List<Item> expectedItems = Arrays.asList(new Item("item1"), new Item("item2"));
group.addItem(new Item("item1"));
group.addItem(new Item("item2"));
assertEquals(expectedItems, group.getItems());
}
第二種方式
使用 getItem(int index) 方法檢查是否添加了所有元素。
@Test
void shouldAddAllItems2() {
Group group = new Group("group2");
group.addItem(new Item("item1"));
group.addItem(new Item("item2"));
assertEquals(new Item("item1"), group.getItem(0));
assertEquals(new Item("item2"), group.getItem(1));
}
注意:對于這兩種解決方案,您都需要覆寫 Item 類中的 equals 和 hashcode 方法才能進行相等檢查。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/464426.html
