Я тестирую метод, который принимает два объекта в качестве параметров и возвращает boolean
. Когда я использую и assertTrue
или assertFalse
по рассматриваемому методу, я получаю следующий сбой теста: junit.framework.AssertionFailedError: null
.AssertionFailedError: null on boolean method
Я знаю, что передаю недействительные параметры и, вероятно, вызову 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());
}
Ошибка, которую вы видите, является нормальной, если метод 'foo' возвращает' false'. Это означает, что он, вероятно, не должен бросать NPE в ожидании. Кстати, вы используете JUnit 4 (из-за аннотации '@ Test'), но вы по-прежнему используете старый класс JUnit 3' Assert' (пакет junit.framework). – LaurentG
Я думаю, вы не столкнулись с nullpointer внутри, вы можете проверить это, запустив метод вне asserTrue. Дайте мне знать результат. – Vegard
«null» - это сообщение, которое вы не дали методу 'assertTrue'. http://junit.sourceforge.net/javadoc/org/junit/Assert.html#assertTrue(boolean) –