OOP Testen einer Exception mit JUnit

Haagy

Mitglied
Hallo Liebes Java-Forum,

ich stehe jetzt seit ein paar Tagen vor einem Problem das ich nicht lösen kann und auch bei der Internetsuche keine Ergebnisse gefunden habe. Vielleicht könnt Ihr mir ja weiter helfen.

Ich habe verschiedene REST-Services die ich aufrufen möchte. Über folgende Klasse bzw. der Methode startSearch werden die einzelnen Services angestoßen.

Java:
public class Search {
   public boolean startSearch(String searchTerm) throws NoSearchApiException, FileNotFoundException, IOException {
     if (!siList.isEmpty()) {
       //falls Liste vorhanden alle APIs der Liste aufrufen
       return true;
     } else if (si != null) {
       //wenn Liste nicht gesetzt dann einzelne API aufrufen
       return true;
     } else {
       //wenn keine API gesetzt ist soll eine Exception geschmissen werden
       throw new NoSearchApiException();
     }
     return false;
   }
}

Was ich im Folgenden versuche ist diese Methode per JUnit zu testen. Der IF-Case sowie ELSEIF-Case laufen ohne Probleme. Versuche ich jetzt denn ELSE-Case wie folgt zu testen,

Java:
   @Test(expected = NoSearchApiException.class)
    public void testSearchAufrufOhneInitialisierungEinerAPI() {
        try {
            hss.startSearch("java");
        } catch (NoSearchApiException e) {
            e.printStackTrace();
        }
    }

läuft dieser auf Failure (java.lang.AssertionError: Expected exception: de.hrw.advswen.utils.NoSearchApiException).
Das ist eigentlich genau die Exception, die ich erwarte und diese wird mir zudem auf der Konsole angezeigt. Warum ist dann der Test-Case nicht grün???o_Oo_O

Ich habe auch schon alles mir erdenkliche ausprobiert von der Anordnung der einzelnen Exceptions in der throws deklaration bis hin zur Behandlung der anderen Exceptions per TRY/CATCH, sodass nur noch die gewünschte Exception in der Methodensignatur steht.

Vielleicht übersehe auch etwas.
Schonmal danke an alle Ideen.
Gruß Haagy
 
Zuletzt bearbeitet von einem Moderator:

Jardcore

Top Contributor
Das was Saheeda schrieb^^
Java:
@Test(expected = NullpointerException.class)
public testNullpointerExample() {
    Company company = null;
    company.setName("TestCompany");
}
 

Haagy

Mitglied
Danke für denn denkanstoß Saheeda und das Beispiel Jardcore.

Mein Problem war das ich die Exception hab fangen müssen, da meine selber geschriebene Exception von IOException geerbt hat. Hab es auf RuntimeException geändert und der Test läuft einwandfrei.

Danke!!
 

Saheeda

Top Contributor
Warum musst du die Exception fangen? Man kann jede Exception im Testfall fliegen lassen. Ergänze die Methodensignatur einfach um "throws DeineException" und es sollte auch funktionieren.
 

Saheeda

Top Contributor
Womit arbeitest du? Eclipse? Wenn du eine Methode aufrufst, die eine CheckedException wirfst, wird diese Methode rot unterkringelt und Eclipse bietet dir an, einen try-catch-Block drum herum zu machen, oder der Methodensignatur "throws DeineException" hinzuzufügen.
 

Haagy

Mitglied
Genau das war mein Problem weswegen ich in die Exception in der Test-Methode per Try/Catch gefangen habe oder eben fangen musste. Durch die Throws-Deklaration funktioniert es auch mit einer Checked-Exception. Aber ich habe eben nicht an diese Deklaration in der Methodensignatur gedacht.

Und ja Eclipse.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Erste Schritte TDD testen einer Methode mit injezierten Services? Allgemeine Java-Themen 12
A AVL-Baum - Testen ob einer vorliegt Allgemeine Java-Themen 4
S Testen einer Anwendung durch klicken von Koordinaten Allgemeine Java-Themen 7
K Testen einer Klasse mit File Objekt als Parameter Allgemeine Java-Themen 6
Zrebna Zuverlässiges Automatisiertes Testen im eigenem Software-Unternehmen aufsetzen - How to? Allgemeine Java-Themen 12
Zrebna Automatisiertes Testen von größeren und komplexen Prozessen Allgemeine Java-Themen 56
Z Testen ob neuer Tag beginnt Allgemeine Java-Themen 37
S Habt ihr eine Idee wie man Serializierung testen kann..? Allgemeine Java-Themen 6
B Eclipse WebSocket programmiert, kann es leider nicht testen. Allgemeine Java-Themen 15
perlenfischer1984 TestNG - Enum testen Allgemeine Java-Themen 1
perlenfischer1984 Testng : Funktion mit mehreren Parametern testen Allgemeine Java-Themen 5
J Best Practice Testen von protected Methoden Allgemeine Java-Themen 7
F Testen von Methoden Allgemeine Java-Themen 3
B JUnit Zufalls Operation testen Allgemeine Java-Themen 1
P Testen von UIs Allgemeine Java-Themen 2
T MEthodenauruf testen, wenn instanz erst erzeugt wird Allgemeine Java-Themen 0
M Testen von verschiedenen Produktversionen Allgemeine Java-Themen 3
T EventBus testen Allgemeine Java-Themen 1
L JUnit - automatisiertes vs. manuelles Testen? Allgemeine Java-Themen 6
R Java Performance testen Allgemeine Java-Themen 18
B Mails testen Allgemeine Java-Themen 7
aze JUnit: Testen ob bestimmte Exception nicht auftritt Allgemeine Java-Themen 18
J JUnit - werfen von Exceptions testen Allgemeine Java-Themen 17
X Testen ob ein array leer ist Allgemeine Java-Themen 6
M Server-Responds testen, Code-Redundanz Allgemeine Java-Themen 3
fastjack Unit-Testen mit Mocks Allgemeine Java-Themen 6
B FileWriter / FileReader testen / Mock-Objekt für Unit Tests? Allgemeine Java-Themen 6
H Thread Safety und Deadlocks testen Allgemeine Java-Themen 6
D Muss eine JNI Biblio testen (MAC OS X) Allgemeine Java-Themen 4
T Object auf Double, Int, String testen Allgemeine Java-Themen 5
aokai Testen von Klassen die abhängig von Stdlibs URL sind Allgemeine Java-Themen 3
R Testen von Applets - versch. Browser und Java Versionen? Allgemeine Java-Themen 4
V Quellcode auf "Güte" testen? Allgemeine Java-Themen 5
G JAR-DAtei testen Allgemeine Java-Themen 15
J Klasse auf Konstruktor oder Methode testen? Allgemeine Java-Themen 3
A Junit Exceptions testen Allgemeine Java-Themen 3
Z Testen welches BS benutzt wird Allgemeine Java-Themen 3
G Testen von RMI,TCP/IP, Servlets etc. Allgemeine Java-Themen 2
M Welches Linux zum Java testen? Allgemeine Java-Themen 5
P Testen mit JUnit Allgemeine Java-Themen 8
L Java6 update N bekommt neues Browser-Plugin, bitte testen. Allgemeine Java-Themen 7
G testen mit JUnit? Allgemeine Java-Themen 3
K Testen ob Methode existiert? Allgemeine Java-Themen 2
N Cashbook Management Testen Allgemeine Java-Themen 7
A testen ob Primzahl dauert bei größeren zahlen extrem lange Allgemeine Java-Themen 8
M String testen? Allgemeine Java-Themen 2
M String testen? Allgemeine Java-Themen 6
N auf typ testen? Allgemeine Java-Themen 3
M Programmierstill: Bitte testen anhand HTML-Tool Allgemeine Java-Themen 18
M Bitte Testen: Mein Multi-File Editor Allgemeine Java-Themen 30
T GUI Testen Allgemeine Java-Themen 4
T GUI Testen Allgemeine Java-Themen 5
G Programm zum Testen der Striktheit von Java Allgemeine Java-Themen 9
H Laufwerk testen? Allgemeine Java-Themen 12
F Hilfe: Adjazenzmatrix mittels JUnit testen. Allgemeine Java-Themen 2
M Jemannd mit 1.4/1.3/1.2 zum Testen gesucht. Allgemeine Java-Themen 15
flashfactor Testen ob ein R/3 erreichbar bzw. noch am leben ist. Allgemeine Java-Themen 2
T Datum testen und Einsetzten Allgemeine Java-Themen 5
M Regular Expression - verschiedene Ausdrücke testen (grep | ) Allgemeine Java-Themen 5
P Dateinamen mit regulärem Ausdruck testen Allgemeine Java-Themen 9
P Dateinamen testen? Schreibrechte auf Verzeichnis testen? Allgemeine Java-Themen 8
O Text aus einer Textdatei rausholen, der zwischen zwei Schlüsselworten steht Allgemeine Java-Themen 4
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
M Methodenübersicht einer Klasse einsehen Allgemeine Java-Themen 14
T JNA, Aufruf der Funktionen einer dll Allgemeine Java-Themen 5
I Vom Monolith zu Services in einer Webseite Allgemeine Java-Themen 1
W Variable Initialisierung mit dem Ergebnis einer Regex Allgemeine Java-Themen 1
O Werte einer Generic LinkedList zusammenrechenen Allgemeine Java-Themen 14
C Sortieren und Selektieren einer ArrayList<Point3D> Allgemeine Java-Themen 6
A Einzelne Objekte und Unterobjekte einer ArrayList ausgeben Allgemeine Java-Themen 53
TheSepp Wie kann man Leerzeichen aus einer Array liste entfernen? Allgemeine Java-Themen 10
B Ein Objekt einer Klasse mehreren anderen Klassen zur Verfügung stellen? Allgemeine Java-Themen 6
M Optimierung einer Methode (byte-Geraffel) Allgemeine Java-Themen 2
I Wie kann ich den Wert aus einer If abfrage ausgeben Allgemeine Java-Themen 23
S HTML einer Webseite 1:1 so bekommen wie es auch der Browser anzeigt? Allgemeine Java-Themen 14
melaniemueller Einzelne Zeile aus einer txt Datei in einem String speichern Allgemeine Java-Themen 12
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
J (Geplante) Änderungen an einer Datei vorübergehend speichern und anwenden? Allgemeine Java-Themen 12
ME2002 Fragen aus einer Java Klausur Allgemeine Java-Themen 67
_user_q Obfuscate einer .jar-Datei mit ProGuard? Allgemeine Java-Themen 2
_user_q Verknüpfung einer .jar-Datei (liegt z. B. auf dem Desktop) im Autostart-Ordner erstellen? Allgemeine Java-Themen 20
C Parsen einer sich updatenden Html mithilfe von jsoup Allgemeine Java-Themen 4
E Eine Methode einer extendeten Klasse deakitivieren Allgemeine Java-Themen 12
H Performance einer Monte-Carlo-Simulation verbessern Allgemeine Java-Themen 6
LimDul Kam eine java.net.URL zu einer HashMap und ging als DNS Anfrage wieder heraus Allgemeine Java-Themen 18
E Variablen Nach Übergabe einer Variable den Constructor aufrufen Allgemeine Java-Themen 16
Zeppi NullPointerException in einer if-Abfrage Allgemeine Java-Themen 6
D Abbruch einer ViewScoped Bean in Arbeit Allgemeine Java-Themen 2
Lukas2904 Schleife mit ansteuerung einer Klasse Allgemeine Java-Themen 5
d.lumpi Aus Einer Klasse auf ein Objekt einer anderen Klasse Zugreifen Allgemeine Java-Themen 1
Lukas2904 Wie kann man cps (ClicksPerSecond) in einer GUI anzeigen lassen? Allgemeine Java-Themen 4
O Produziert das Tool "jpackage" (ab JDK 14) .exe Dateien, die auf einer Zielumgebung ohne JRE lauffähig sind ?` Allgemeine Java-Themen 7
R Lambda Expression in einer Methode execute() aufrufen (execute() ist eine Methode aus dem funktionalen Interface Command) Allgemeine Java-Themen 5
Drachenbauer wie kann ich alle instanzen einer Klasse durchsehen, ohne, dass diese in einer Liste erzeugt wurden? Allgemeine Java-Themen 11
N BlueJ Implementation einer Analoguhr Allgemeine Java-Themen 0
O Formatierte String ausgabe bei vier Variablen in einer Zeile Allgemeine Java-Themen 1
N Speicherort einer Datei im Explorer ändern Allgemeine Java-Themen 8
O Datentypen Wie kann ich den Typ einer ArrayList abfragen ? Allgemeine Java-Themen 7
O Leerzeichen und Umlaute im Pfad einer Java Applikation machen Probleme Allgemeine Java-Themen 13
H Mehrere PNG-Files in einer Datei Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben