Hi zusammen,
ich schreibe gerade JUnit-Tests für meine Java-Anwendung. Jetzt habe ich beispielsweise eine Methode wie diese hier:
Wie gesagt, nur ein einfaches Beispiel, aber hier greife ich auf ein Oracle-Schema "DatenbankschemaProd" zu, in dem die Tabelle "test" liegt.
Wenn ich einen simplen JUnit-Test für diese Methode schreibe, stehen hinterher natürlich zwei gleichlautende Datensätze in der Tabelle "test". Von daher möchte ich an dieser Stelle gerne mit DBUnit arbeiten: im setUp eine leere Tabelle (z.B. im Datenbankschema "test") erzeugen, dann in einem JUnit-Test die Methode aufrufen und prüfen, ob der Datensatz hinzugefügt wurde, und im tearDown die Tabelle wieder leeren/löschen etc.
So weit auch so gut. Mein Problem ist: rufe ich in einem Test diese Methode auf, erfolgt hier natürlich der Zugriff auf das "DatenbankschemaProd" und nicht, wie ich es gerne hätte, auf die von mir für den Test erzeugte Tabelle. Vielleicht habe ich auch gerade ein großes Brett vorm Kopf, aber wie müßte ich meine Methode umstellen, um den von mir gewünschten Effekt zu erreichen? Das Datenbankschema als Parameter zu übergeben ginge zwar auch, fände ich aber nicht so schön.
Bin für jede Anregung dankbar!
Viele Grüße vom Huhn
ich schreibe gerade JUnit-Tests für meine Java-Anwendung. Jetzt habe ich beispielsweise eine Methode wie diese hier:
Java:
public static void test() {
final String sqlStatement = "insert into test(id, text) values (1, 'hallo')";
try {
Connection conn = Hilfsklasse.getConnection([I]DatenbankschemaProd[/I]);
final Statement stat = conn.createStatement();
stat.executeUpdate(sqlStatement);
conn.commit();
stat.close();
Hilfsklasse.closeConnection(conn);
} catch (final SQLException e) {
System.out.println(e.getMessage());
}
}
Wie gesagt, nur ein einfaches Beispiel, aber hier greife ich auf ein Oracle-Schema "DatenbankschemaProd" zu, in dem die Tabelle "test" liegt.
Wenn ich einen simplen JUnit-Test für diese Methode schreibe, stehen hinterher natürlich zwei gleichlautende Datensätze in der Tabelle "test". Von daher möchte ich an dieser Stelle gerne mit DBUnit arbeiten: im setUp eine leere Tabelle (z.B. im Datenbankschema "test") erzeugen, dann in einem JUnit-Test die Methode aufrufen und prüfen, ob der Datensatz hinzugefügt wurde, und im tearDown die Tabelle wieder leeren/löschen etc.
So weit auch so gut. Mein Problem ist: rufe ich in einem Test diese Methode auf, erfolgt hier natürlich der Zugriff auf das "DatenbankschemaProd" und nicht, wie ich es gerne hätte, auf die von mir für den Test erzeugte Tabelle. Vielleicht habe ich auch gerade ein großes Brett vorm Kopf, aber wie müßte ich meine Methode umstellen, um den von mir gewünschten Effekt zu erreichen? Das Datenbankschema als Parameter zu übergeben ginge zwar auch, fände ich aber nicht so schön.
Bin für jede Anregung dankbar!
Viele Grüße vom Huhn