Databases Reference
In-Depth Information
in die private Methode tabellenvergleich ausgelagert, die man
bei häufiger Nutzung auch zentral als Klassenmethode einer
Hilfsklasse zur Verfügung stellen kann.
private int anzahlTiere(String gattung)
throws SQLException{
CallableStatement stmt=con.prepareCall(
"{? = call anzahlTiere(?)}");
stmt.registerOutParameter(1
,Types.INTEGER);
stmt.setString(2,gattung);
stmt.execute();
return stmt.getInt(1);
}
@Test
public void testFunctionAnzahlTiere()
throws Exception{
Assert.assertTrue(anzahlTiere("Baer") == 2);
Assert.assertTrue(anzahlTiere("Schaf") == 3);
Assert.assertTrue(anzahlTiere("Gnu") == 0);
try {
anzahlTiere("Hase");
} catch (SQLException e){
Assert.assertTrue(e.getErrorCode()
== 20300);
} catch (Exception e){
Assert.fail();
}
}
Die Hilfsmethode anzahlTiere dient dazu, die PL/SQL-Funktion
anzahlTiere zum Zählen der vorhandenen Tiere von Seite 299
aufzurufen. Der nachfolgende Test überprüft für verschiedene
Gattungen die Ergebnisse. Folgt man konsequent der Forde-
rung, dass Tests möglichst wenig Zusicherungen enthalten sol-
len, die sich alle nur auf die vorherige Aktion beziehen, ist die-
ser Testfall unsauber und müsste in vier Testfälle aufgeteilt
werden. Das Beispiel wurde hier gewählt, um zu verdeutli-
chen, dass die Überprüfung für „Gnu“ nicht mehr stattfindet,
wenn die Prüfung für „Schaf“ gescheitert ist. Wären die Tests
getrennt, wüsste man nicht nur, dass der Test für „Schaf“ schei-
tert, sondern auch, wie das Testergebnis für „Gnu“ aussieht.
Da Hasen nach Aufgabenstellung nicht zählbar sind, wird hier
zum Abschluss auf eine erwartete Exception mit der vorher
vergebenen Fehlernummer geprüft.
@Test
public void testTriggerNeueArtOk()
320
Search WWH ::




Custom Search