繁体   English   中英

为什么我的方法不能正确检测对象是否为空?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM