OOP Testen einer Exception mit JUnit

H

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:
J

Jardcore

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

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!!
 
S

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.
 
H

Haagy

Mitglied
@Joose Werde mich das nächste mal dran halten.
@Saheeda Ich fühle micht leicht Dumm, dass ich nicht selber darauf gekommen bin. Habe alles probiert aber das einfachste natürlich nicht ... :mad:
 
S

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.
 
H

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
ZeusSeinGrossopa 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 3
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 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
G Java Editor Löschen doppelter Zahlen einer Liste Allgemeine Java-Themen 2
J JSON Daten von einer Webseite erhalten Allgemeine Java-Themen 2
L RegEx für Teile einer Berechnung Allgemeine Java-Themen 14
J Zerlegen einer Zahl Allgemeine Java-Themen 6
Zrebna Wie kann man endgültig aus einer Rekursion ausbrechen? Allgemeine Java-Themen 14
M Person in einer Arraylist hinzugügen mit Prüfung ? Allgemeine Java-Themen 6
Meeresgott Effizientester Weg um nach der Value einer verschachtelten Map aufzulösen Allgemeine Java-Themen 5
H Mehrere Datentypen in einer Arraylist speichern Allgemeine Java-Themen 9
M Prüfziffer einer EAN Nummer berechnen Allgemeine Java-Themen 4
M Erstellungsdatum einer Datei Allgemeine Java-Themen 10
Drachenbauer Wie kann ich einer existierenden Enum von außerhalb veränderte Werte zuweisen? Allgemeine Java-Themen 5
S HTML den ich von einer URL hole nicht identisch mit dem HTML im Browser Allgemeine Java-Themen 1
S Rückgabe einer HttpURLConnection für eine Seite einlesen bei der man eingeloggt ist..? Allgemeine Java-Themen 5
O Java-Applikation tut in Netbeans, als JAR nicht, wegen Pfadangaben einer benötigten Datei Allgemeine Java-Themen 8
M Hilfe bei einer Java Programmieraufgabe! Ab morgen Montag um 08:00 Uhr Allgemeine Java-Themen 5
J Algorithmen Analyse einer Schleife Allgemeine Java-Themen 6
Drachenbauer Wie finde ich den Aufrufer zu einer Methode, die sich nicht in meinem Projekt befindet? Allgemeine Java-Themen 2
J Die Letzte Zahl aus einer Text datei lesen Allgemeine Java-Themen 8
P einen public <Optinal String> in einer anderen Klasse mit einem Int vergleichen Allgemeine Java-Themen 2
A Mithilfe von einer Nummer einen Namen finden n-Beziehung Allgemeine Java-Themen 8
Scream_ilias Auf einer Website die anmeldedaten eingeben Allgemeine Java-Themen 9
V Threads Probleme beim Aufrufen von Methoden einer anderen Klasse (Threads) Allgemeine Java-Themen 14
I Lohnt sich heutzutage der Aufwand einer Portierung für MacOS Allgemeine Java-Themen 8
J Suchen von einer Scannereingabe in einem HashSet Allgemeine Java-Themen 1
M Konstruktor einer Methode Allgemeine Java-Themen 35
L Echtzeitdaten aus einer Webseite ziehen mit Java Allgemeine Java-Themen 19
V EMail, Attachments auslesen von einer Email Allgemeine Java-Themen 0
T Google Links in einer Liste Allgemeine Java-Themen 4
T Sinn einer toString Methode Allgemeine Java-Themen 3
P Durchlaufen einer Queue Allgemeine Java-Themen 9
J Größe einer CD ermitteln Allgemeine Java-Themen 10
L Operatoren Java Reflections: Alle Methoden einer Klasse aufrufen ohne Exceptions Allgemeine Java-Themen 5
H Länge einer verketteten Liste Allgemeine Java-Themen 4
B Quellcode einer Java libary finden um zu copy & paste'n Allgemeine Java-Themen 5
N Daten einer JCoTable in JTextArea anzeigen Allgemeine Java-Themen 7
sascha-sphw Java 9 module Zugriff auf eine resource einer anderen JAR Allgemeine Java-Themen 0
N Generic Type einer Generischen Klasse während der Laufzeit bekommen Allgemeine Java-Themen 2
E Erstellen einer Liste mit einer maximalen Menge an Elementen Allgemeine Java-Themen 13

Ähnliche Java Themen

Anzeige

Neue Themen


Oben