Ich teste eine Methode, die zwei Objekte als Parameter akzeptiert und eine boolean
zurückgibt. Wenn ich und assertTrue
oder assertFalse
auf der fraglichen Methode verwende, bekomme ich den folgenden Testfehler: junit.framework.AssertionFailedError: null
.AssertionFailedError: null auf boolescher Methode
Ich weiß, dass ich ungültige Parameter übergebe und wahrscheinlich eine NPE innerhalb der Methode verursacht, aber das ist nicht, was passiert, stattdessen ist der Test fehlgeschlagen.
Hinweis: Ich verwende boolean
und nicht Boolean.
Beispielcode:
Klasse:
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());
}
Der angezeigte Fehler ist normal, wenn die Methode 'foo'' false' zurückgibt. Das bedeutet, dass es wahrscheinlich keine NPE wie erwartet werfen sollte. Übrigens benutzen Sie JUnit 4 (wegen der Annotation '@ Test'), aber Sie verwenden immer noch die alte JUnit 3' Assert' Klasse (des Pakets junit.framework). – LaurentG
Ich glaube, Sie haben keinen Nullzeiger innerhalb gefunden. Sie können dies testen, indem Sie die Methode außerhalb von asserTrue ausführen. Lass mich das Ergebnis wissen. – Vegard
Die 'Null' ist die Nachricht, die Sie der 'assertTrue'-Methode nicht gegeben haben. http://junit.sourceforge.net/javadoc/org/junit/Assert.html#assertTrue(boolean) –