[英]Why is my method not properly detecting if an object is null?
我正在编写JUnit测试来测试将公交车站添加到收藏夹列表的方法。 仅当停止位不为空或该停止位不在列表中时,才应将停止位添加到列表中。 这是我的方法:
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。有人可以指出我在哪里出问题了吗?
首先,在JUnit“ assert”方法调用中,期望值首先到达,然后是测试值。 使用assertEquals(4, stops.size())
。 应该预期4是5。
其次,您要调用stops.add(stop5)
,而不是addStop
方法,因此将添加null
。 让您的test
方法实际调用addStop
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.