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.
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,
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???
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
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???
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: