我正在编写JUnit测试来测试一个方法,该方法将一个公共汽车站添加到收藏夹列表中。如果stop不为null或者stop不在列表中,它应该只将stop添加到列表中。这是我的方法:
public boolean addStop(BusStop stop) {
if (stop == null || stops.contains(stop)) {
return false;
else {
stops.add(stop);
return true;
}
这是我的JUnit测试:
public void testAddStop() {
stops.add(stop1);
stops.add(stop2);
stops.add(stop3);
stops.add(stop4); // Stops 1-4 are not null
assertEquals(stops.size(), 4);
stop5 = null;
stops.add(stop5); // Stop 5 is null
assertEquals(stops.size(), 4);
}
当运行测试时,第二个assertEquals失败,说它预期为5,但实际上是4.任何人都可以帮助指出我在哪里出错吗?
答案 0 :(得分:3)
首先,在JUnit"断言"方法调用,首先是期望值,然后是测试值。使用assertEquals(4, stops.size())
。应该预计4,是5。
其次,您正在调用stops.add(stop5)
,而不是addStop
方法,因此添加了null
。让test
方法实际调用addStop
。