Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的方法不能正确检测对象是否为空?_Java_Testing_Junit - Fatal编程技术网

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

Java 为什么我的方法不能正确检测对象是否为空?,java,testing,junit,Java,Testing,Junit,我正在编写JUnit测试来测试一个方法,该方法将公共汽车站添加到收藏夹列表中。仅当停止不为null或停止不在列表中时,才应将停止添加到列表中。这是我的方法: public boolean addStop(BusStop stop) { if (stop == null || stops.contains(stop)) { return false; else { stops.add(stop); return true; } 这是我的JUnit

我正在编写JUnit测试来测试一个方法,该方法将公共汽车站添加到收藏夹列表中。仅当停止不为null或停止不在列表中时,才应将停止添加到列表中。这是我的方法:

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

首先,在JUnit“assert”方法调用中,预期值首先出现,然后是测试值。使用
assertEquals(4,stops.size())
。应该是4,是5

其次,您正在调用
stops.add(stop5)
,而不是
addStop
方法,因此添加了
null
。让您的
test
方法实际调用
addStop

首先,在JUnit“assert”方法调用中,预期值首先出现,然后是测试值。使用
assertEquals(4,stops.size())
。应该是4,是5

其次,您正在调用
stops.add(stop5)
,而不是
addStop
方法,因此添加了
null
。让您的
test
方法实际调用
addStop

首先,在JUnit“assert”方法调用中,预期值首先出现,然后是测试值。使用
assertEquals(4,stops.size())
。应该是4,是5



其次,您正在调用
stops.add(stop5)
,而不是
addStop
方法,因此添加了
null
。让您的
test
方法实际调用
addStop

调试有三个方面:输入、过程和输出。您给了我们流程和输出,但让我们猜测输入。因为您使用的是
停止。直接添加(stop5)
,而不是调用
addStop(stop5)
单元测试如何能够访问内部数据结构
停止
?@gtgaxiola啊,谢谢,我一定忽略了这一点,因为它们听起来非常相似。调试有三个方面:输入、过程和输出。您给了我们流程和输出,但让我们猜测输入。因为您使用的是
停止。直接添加(stop5)
,而不是调用
addStop(stop5)
单元测试如何能够访问内部数据结构
停止
?@gtgaxiola啊,谢谢,我一定忽略了这一点,因为它们听起来非常相似。调试有三个方面:输入、过程和输出。您给了我们流程和输出,但让我们猜测输入。因为您使用的是
停止。直接添加(stop5)
,而不是调用
addStop(stop5)
单元测试如何能够访问内部数据结构
停止
?@gtgaxiola啊,谢谢,我一定忽略了这一点,因为它们听起来非常相似。调试有三个方面:输入、过程和输出。您给了我们流程和输出,但让我们猜测输入。因为您使用的是
停止。直接添加(stop5)
,而不是调用
addStop(stop5)
单元测试如何能够访问内部数据结构
停止
?@gtgaxiola啊,谢谢,我一定忽略了这一点,因为它们听起来非常相似。哎呀!谢谢!哎呀!谢谢!哎呀!谢谢!哎呀!谢谢!