Testuję metodę, która pobiera dwa obiekty jako parametry i zwraca wartość boolean
. Kiedy używam i assertTrue
lub assertFalse
dla tej metody, otrzymuję następującą niepowodzenie testu: junit.framework.AssertionFailedError: null
.AssertionFailedError: null na boolowskiej metodzie
Wiem, że przekazuję niepoprawne parametry i prawdopodobnie spowoduje to, że w metodzie będzie NPE, ale to nie jest to, co się dzieje, zamiast tego test się nie udaje. Uwaga: Używam boolean
, a nie Boolean.
Przykładowy kod:
Klasa:
public class MyClass{
public boolean foo(MyObject1 lhs, MyObject2 rhs){
//doSomething
//return something
}
}
Test:
.... //initilization of myClass, etc.
@Test
public void testFoo(){
assertTrue(myClass.foo(new MyObject1(), new MyObject2());
}
Błąd, który widzisz, jest normalny, jeśli metoda 'foo' zwraca' fałsz'. Oznacza to, że prawdopodobnie nie powinien wyrzucać NPE zgodnie z oczekiwaniami. Nawiasem mówiąc, używasz JUnit 4 (z powodu adnotacji '@ Test'), ale nadal używasz starej klasy JUnit 3' Assert' (pakietu junit.framework). – LaurentG
Myślę, że nie spotkałeś nullpointer wewnątrz, możesz to sprawdzić, uruchamiając metodę poza asserTrue. Daj mi znać wynik. – Vegard
"Null" to komunikat, którego nie podano do metody "assertTrue". http://junit.sourceforge.net/javadoc/org/junit/Assert.html#assertTrue(boolean) –