JUnit - werfen von Exceptions testen

J

jared

Aktives Mitglied
Hi!
Ich bin gerade dabei einen UnitTest zu schreiben für eine Singleton Klasse. Ich möchte getInstance() aufrufen. Rufe diese Methode in meinem Testfall auf und hoffe das diese mir die Exception wirft. Tut sie auch, nur wird diese in dem try-catch block in meinem Testfall nicht aufgefangen.

Weil dies nicht so funktioniert wie erhofft, habe ich zum Testen die getIntance()-Methode stark vereinfacht:
Java:
...
public static MyClass getInstance() throws IllegalArgumentException {
    throws new IllegalArgumentException("Exception");
}
...

Somit muss beim Aufruf dieser Methode in jedem Fall eine Exception geschmissen werden.
Mein Testfall sieht folgendermaßen aus:
Java:
...
public void testFailGetInstance() {
    MyClass test;

    try {
        test = MyClass.getInstance( );

        fail("...");
    }
    catch(IllegalArgumentException exception) {
        // this is ok
    }
}
...

Komischerweise funktioniert dies aber nicht.
In der Ausgabe in Eclipse für Unit-Tests gibt er mir aus, dass diese Exception geworfen wurde.
Ich verstehe nicht, weshalb dieser try-catch Block ignoriert wird.

Hoffe ihr könnt mir weiterhelfen.

mfg
jared.
 
schalentier

schalentier

Gesperrter Benutzer
JUnit FAQ

Java:
@Test(expected=IllegalArgumentException.class)
public void testFailGetInstance() {
   MyClass.getInstance( );
}
 
Zuletzt bearbeitet:
J

jared

Aktives Mitglied
Wenn ich in die Configuration reinschaue unter TestRunner, ist JUnit 4 eingestellt.
 
turtle

turtle

Top Contributor
Java:
import org.junit.Test;

public class SimpleTest {

	@Test(expected = IllegalArgumentException.class)
	public void testFailGetInstance() {
		SimpleTest.getInstance();
	}

	private static void getInstance() {
		throw new IllegalArgumentException("Oops");
	}
}

Funzt bei mir wunderbar!
 
J

jared

Aktives Mitglied
Bei mir aber nicht.
Ich habe die getInstance-Methode nicht in der TestKlasse implementiert sondern in einer andern. Keine Ahnung ob das was aus macht.
Ich habe jetzt auch noch ma geschaut. An anderen Stellen (TestKlassen), habe ich dies auch schon mal gemacht und es geht. Ich sehe zu den anderen TestCases keinen Unterschied zu dem aktuellen.
Kennt niemand eine Lösung hierfür?
 
J

jared

Aktives Mitglied
die Exception wird geworfen. Bei mir Links in dem JUnit-Reiter unten im Failure-Trace, zeigt er mir dies sogar an. Nur irgendwie ignoriert er den try/catch-Block und ich habe keine Ahnung wieso.
 
turtle

turtle

Top Contributor
Wieso glaubst Du wird der try-catch Block ignoriert?

Im Code sehe ich nicht, dass Du irgendetwas im catch-Block machst. Wenn Du mal debuggst, siehst Du auch, das das Programm völlig korrekt die Exception fängt.

Dann darfst Du natürlich NICHT sagen, dass die expected-Exception eine IllegalArgument-Exception sein soll, weil Du die ja selber behandelst/abfängst, oder MIT expected-Annotation und im catch-Block die Exception wieder werfen.
 
J

jared

Aktives Mitglied
Wenn ich die Excpetion doch erwarte, dann mache ich doch nichts im catch-Block.
Ich habe obend die expected-Annotation entfernt und es tut sich trotzdem nichts.
 
J

jared

Aktives Mitglied
meinst du das:
Java:
throw new IllegalArgumentException("The Model Reference must not be null!");

Wenn ich in meinem Unit-Test einen Breakpoint setzen will, ignoriert er den komplett. In einem anderen Unit-test hält er da ohne Probleme an. Ich versuche jetzt mal den Unit-Test zu löschen und manuell anzulegen ohne Unterstützung vom Eclipse.
 
D

diggaa1984

Top Contributor
wenn du die annotation oben entfernst, was machst du dann im catch-block? eine art assert(true) oder so!? oder sind die tests per default true, wenn kein fehler geworfen wird? ich nutze zwar gerade TestNG, was ja arg verwandt ist mit JUnit, aber bin noch net so firm und nachschauen ist grad nich ^^
 
J

jared

Aktives Mitglied
Habe die Klasse gelöscht und den kompletten Test neu implementeirt und es funktioniert. KA was da schief ging.

Danke trotzdem für eure Hilfe.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J JUnit - Auslassen von Code Allgemeine Java-Themen 25
S Zugriff auf jUnit Test Suite Runner-Instanzen innerhalb von Test Classes Allgemeine Java-Themen 7
S Eclipse Probleme beim Implementieren / Ausführen von jUnit 5-Test Suites Allgemeine Java-Themen 14
S Parametrisierte jUnit 5-Tests mit eigenen Datentypen/Klassen-Objekten als Test-Parameter Allgemeine Java-Themen 0
K Input/Output JUnit: Log Inhalte, falsche Assertion Allgemeine Java-Themen 2
H OOP Testen einer Exception mit JUnit Allgemeine Java-Themen 8
AssELAss Junit-Tests für SQL-Veribindung sowie SQL-Queries? Allgemeine Java-Themen 3
O Maven - JUnit - H2 Allgemeine Java-Themen 1
M Selenium JUnit Tests (Auswahl von Testmethoden auswerten) Allgemeine Java-Themen 5
C JUNIT - ANT - build.xml Allgemeine Java-Themen 0
Airwolf89 JUnit: Vorschläge/ Best Practice Allgemeine Java-Themen 7
M JUnit Serverseitig? Wie geht sowas? Allgemeine Java-Themen 2
E JUnit wie Testergebnisse pro Test ("Test Report") erhalten? Allgemeine Java-Themen 1
B JUnit Zufalls Operation testen Allgemeine Java-Themen 1
P JUnit Allgemeine Java-Themen 2
B jUnit 4: Wie protokolliert man Testergebnisse? Allgemeine Java-Themen 1
H JUnit Fehler beim Compilieren - erledigt Allgemeine Java-Themen 0
M JUnit Test Suites Allgemeine Java-Themen 2
L JUnit - automatisiertes vs. manuelles Testen? Allgemeine Java-Themen 3
B Hilfe bei JUnit Test Allgemeine Java-Themen 1
M JUnit & Multithreading - sehr seltener Fehler Allgemeine Java-Themen 3
A JUnit/Hashcode Problem Allgemeine Java-Themen 5
X Problem mit URLClassLoader und JUnit Allgemeine Java-Themen 3
N JUnit Allgemeine Java-Themen 13
M Junit Tests durchführen Allgemeine Java-Themen 18
M JVM Probleme JUnit Allgemeine Java-Themen 2
G NUnit Features in JUnit Allgemeine Java-Themen 2
darekkay (JUnit) Testdaten generieren - Framework? Allgemeine Java-Themen 2
A JUnit problem Allgemeine Java-Themen 9
T Organisation von Junit Testfällen? Allgemeine Java-Themen 2
M JUnit Tests vs. DBUnit Tests Allgemeine Java-Themen 3
P Klassen Junit test funktioniert nicht... Allgemeine Java-Themen 11
S Die Zeile die JUnit gerade ausführt lesen Allgemeine Java-Themen 15
aze JUnit: Testen ob bestimmte Exception nicht auftritt Allgemeine Java-Themen 18
U Fehler: Hauptklasse org.junit.runner.JUnitCore konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 2
G JUnit Test Methoden in anderen Thread verlagern Allgemeine Java-Themen 4
J JUnit-Tests Zeichensatzproblem ? Allgemeine Java-Themen 2
J JUnit, TestCase vs "einfacher" Test Allgemeine Java-Themen 3
S [JUnit] Name von TestCase bekommen Allgemeine Java-Themen 4
1 JUnit Test Suit Allgemeine Java-Themen 2
T Junit-Tests in Java Klasse ausführen Allgemeine Java-Themen 26
M JUnit TestSuite erstellen Allgemeine Java-Themen 2
B JUnit und mehrere Instanzen der selben Applikation Allgemeine Java-Themen 4
G Testcases mit Junit auf private-Methode Allgemeine Java-Themen 7
G Input/Output System.in "umbiegen" für junit-Test Allgemeine Java-Themen 4
C JUnit und das Zulassen von RuntimeExceptions Allgemeine Java-Themen 5
jmar83 junit mit annotations geht nicht? Allgemeine Java-Themen 5
T JUnit-Log auslesen Allgemeine Java-Themen 13
C JUnit Tests Allgemeine Java-Themen 4
fastjack JUnit Supplementary Classes Allgemeine Java-Themen 4
O Junit Reports / Logs als XML ohne Maven/Ant Allgemeine Java-Themen 7
M Junit und Mocks Allgemeine Java-Themen 5
fastjack jUnit und Test von equals, hashCode, toString Allgemeine Java-Themen 11
D junit - frage zu fixtures/test suites Allgemeine Java-Themen 11
A Seltsames Verhalten von JUnit-Tests im Zusammenspiel mit Ant Allgemeine Java-Themen 6
S JUnit: Erzeugen einer IOException Allgemeine Java-Themen 9
G JUnit Tests Allgemeine Java-Themen 7
G JUnit Test Allgemeine Java-Themen 5
S JUnit - was mocken, was nicht? Allgemeine Java-Themen 3
S JUnit TesSuite und @Repeat Allgemeine Java-Themen 2
S JUnit Tests für GUI / Oberflächen Allgemeine Java-Themen 2
M Junit und Mocks bei JDBC Daos Allgemeine Java-Themen 8
M JUnit Problem mit AssertionFailedError Allgemeine Java-Themen 2
B Testfälle mit JUnit Allgemeine Java-Themen 4
S JUnit Allgemeine Java-Themen 15
N ClassNotFound Exception bei JUnit Test? Allgemeine Java-Themen 2
G ANT Tutorial . Schritte bzgl. Junit Bibliothek Allgemeine Java-Themen 4
A JUnit Reports zu groß für XSLT Allgemeine Java-Themen 4
M JUnit und dynamische Tests Allgemeine Java-Themen 11
P JUnit unter Eclipse: Problem mit Exception Allgemeine Java-Themen 8
GilbertGrape Warum schlägt JUnit-Test fehl? Allgemeine Java-Themen 19
K Bekomme JUnit TEst nicht zum laufen :( Allgemeine Java-Themen 9
K Junit: Frage zum Ablauf Allgemeine Java-Themen 3
K JUnit: Tests über ant aufrufen Allgemeine Java-Themen 2
S JUnit und EasyMock Allgemeine Java-Themen 7
B Wie alt ist JUnit? Allgemeine Java-Themen 2
A Junit Exceptions testen Allgemeine Java-Themen 3
P Testen mit JUnit Allgemeine Java-Themen 8
7 JUnit: Testproblem. Allgemeine Java-Themen 23
G Ant + JUnit Allgemeine Java-Themen 2
F JUnit unter Ant Allgemeine Java-Themen 3
S Integer zu int konvertieren - JUnit Allgemeine Java-Themen 12
G testen mit JUnit? Allgemeine Java-Themen 3
K JUnit 4 User Interaktion Allgemeine Java-Themen 7
M Ant + Junit + Testclass in Jar Allgemeine Java-Themen 3
G Junit 4 - TestSuite Allgemeine Java-Themen 6
B JUnit Allgemeine Java-Themen 2
T CheckStyle, JUnit und FindBugs aus Java-Programm starten Allgemeine Java-Themen 2
S JUnit will ins Netz! Allgemeine Java-Themen 2
B JUnit - Gleichen Test x-mal durchlaufen Allgemeine Java-Themen 2
F Hilfe: Adjazenzmatrix mittels JUnit testen. Allgemeine Java-Themen 2
H JUnit Allgemeine Java-Themen 5
N Problem mit Ant und JUnit Allgemeine Java-Themen 5
perlenfischer1984 Functionsparameter prüfen und eine Exception werfen !? Allgemeine Java-Themen 11
B Execption auf Oberfläche werfen, try-catch-Block Allgemeine Java-Themen 6
M IllegalArgumentException oder Exception werfen? Allgemeine Java-Themen 18
W Exceptions behandeln Allgemeine Java-Themen 16
Kirby_Sike Exceptions erklärt Allgemeine Java-Themen 5
L Operatoren Java Reflections: Alle Methoden einer Klasse aufrufen ohne Exceptions Allgemeine Java-Themen 5
E Java Editor Problem mit 2er Exceptions Allgemeine Java-Themen 12

Ähnliche Java Themen

Anzeige

Neue Themen


Oben