Wie test assert throws Ausnahme in Android

9

Gibt es eine elegantere Möglichkeit, eine Assert-Throw-Ausnahme in Android zu machen als diese?

%Vor%

So etwas funktioniert nicht?!

%Vor%

Danke, Markus

    
Mark 26.09.2011, 08:39
quelle

4 Antworten

5

Verwenden Sie einen junit4 Test Runner? Die @Test-Annotation funktioniert nicht, wenn Sie einen Junit3-Test-Runner ausführen. Überprüfen Sie die Version, die Sie verwenden.

Zweitens ist die empfohlene Methode, nach Ausnahmen in Ihrem Code zu suchen, die Verwendung einer Regel (eingeführt in Junit 4.7).

%Vor%

Sie können weiterhin @Test (expected = IOException.class) verwenden, aber das oben genannte hat den Vorteil, dass der Test fehlschlägt, wenn eine Ausnahme ausgelöst wird, bevor die Ausnahme.expect aufgerufen wird.

    
Matthew Farwell 26.09.2011, 11:42
quelle
3

Ich habe etwas mit hopias Antwort mit ein paar Verbesserungen sehr ähnlich gemacht. Ich habe es das Exception-Objekt zurückgeben lassen, so dass Sie seine Nachricht oder andere Eigenschaften überprüfen können, und ich habe eine Testable -Schnittstelle deklariert, um Runnable zu ersetzen, weil Runnable den geprüften Code nicht zu überprüften Exceptions wirft.

%Vor%

Hier ist ein Beispiel für den Aufruf.

%Vor%     
Don Kirkby 24.03.2013 19:46
quelle
2

So mache ich es. Ich erstelle eine statische Methode namens assertThrowsException, die als Argumente eine erwartete Ausnahmeklasse und eine Runnable, die den zu testenden Code enthält, als Argumente verwendet.

%Vor%

Dies ist der Beispielcode, um den speziellen Assert in Ihrer Testklasse zu verwenden (der AndroidTestCase oder eines seiner Derivate erweitert):

%Vor%

Ja, es gibt eine Menge Arbeit, aber es ist besser, als junit4 auf Android zu portieren.

    
hopia 09.05.2012 02:55
quelle
0

Mit junit3 könnte das Folgende helfen.

%Vor%     
SK9 25.06.2015 12:52
quelle

Tags und Links