6

我正在测试一个将两个对象作为参数并返回一个boolean. 当我在有问题的方法上使用 andassertTrueassertFalse时,我得到以下测试失败:junit.framework.AssertionFailedError: null.

我知道我传递了无效的参数,并且可能会在方法中导致NPE,但这不是正在发生的事情,而是测试失败了。

注意:我正在使用boolean而不是Boolean

示例代码:

班级:

public class MyClass{
  public boolean foo(MyObject1 lhs, MyObject2 rhs){
    //doSomething
    //return something
  }
}

测试:

.... //initilization of myClass, etc.
@Test
public void testFoo(){
  assertTrue(myClass.foo(new MyObject1(), new MyObject2());
}
4

1 回答 1

9

" null" 在 JUnit 3 断言 ( junit.framework.Assert) 中显示为带有空白消息参数的消息。这已在 JUnit 4 ( org.junit.Assert) 中修复。

例子:

JUnit 3:

assertTrue(false)具有相同的堆栈跟踪assertTrue("null", false)

JUnit 4:

assertTrue(false)具有相同的堆栈跟踪assertTrue("", false)

于 2013-06-19T20:13:49.007 回答