Hallo Leute,
obwohl es eigentlich beschlossen wurde keine JUnit-Tests für die DB-Background-Jobs zu schreiben, würde mich interessieren, wie Ihr das machen würdet. Das Thema lässt mich nicht in Ruhe, da ich gewohnt bin, Tests für das Backend zu schreiben und mir unkontrollierte (nicht ausreichend getestete) Änderungen des Datenbankzustandes Angst machen... ihr versteht was ich meine?
Es liegt folgende Situation vor:
- es gibt eine Oracle-DB
- es gibt mehrere Jobs die beim Vorliegen bestimmter Bedingungen eine Tabelle ändern: es kann ein UPDATE oder ein DELETE sein (nicht entweder oder, sondern das sind zwei verschiedene Jobs).
- diese Jobs werden automatisch (wenn bestimmte Regeln vorliegen) bzw. manuell vom Administrator angetoßen werden.
Nun implementiert habe ich die jobs schon und ich habe sie manuel getestet aber das ist meiner Meinung nach nicht ausreichend. Was ist Eure Meinung dazu?
Meine Idee solche Jobs mt JUNIt zu testen wäre folgende:
1) Test erstellt eine DB (bzw. nimmt eine Test-DB, kopiert beispielsweise jedes Mal aus dem Ressource-Verzeichnis in den runtime-ordner eine Test-DB).
2) Nun, da es eine Test-DB ist wissen wir ganz genau welchen Zustand sie hat und der ist am Anfang beim Ausführen jedes Tests immer gleich.
3) Wir starten den Job und wissen was rauskommen soll, somit können den Zustand der DB prüfen.
Wäre so eine Vorgehensweise sinnvoll bzw. was für Alternativen gäbe es?
Gruß, madlena
obwohl es eigentlich beschlossen wurde keine JUnit-Tests für die DB-Background-Jobs zu schreiben, würde mich interessieren, wie Ihr das machen würdet. Das Thema lässt mich nicht in Ruhe, da ich gewohnt bin, Tests für das Backend zu schreiben und mir unkontrollierte (nicht ausreichend getestete) Änderungen des Datenbankzustandes Angst machen... ihr versteht was ich meine?
Es liegt folgende Situation vor:
- es gibt eine Oracle-DB
- es gibt mehrere Jobs die beim Vorliegen bestimmter Bedingungen eine Tabelle ändern: es kann ein UPDATE oder ein DELETE sein (nicht entweder oder, sondern das sind zwei verschiedene Jobs).
- diese Jobs werden automatisch (wenn bestimmte Regeln vorliegen) bzw. manuell vom Administrator angetoßen werden.
Nun implementiert habe ich die jobs schon und ich habe sie manuel getestet aber das ist meiner Meinung nach nicht ausreichend. Was ist Eure Meinung dazu?
Meine Idee solche Jobs mt JUNIt zu testen wäre folgende:
1) Test erstellt eine DB (bzw. nimmt eine Test-DB, kopiert beispielsweise jedes Mal aus dem Ressource-Verzeichnis in den runtime-ordner eine Test-DB).
2) Nun, da es eine Test-DB ist wissen wir ganz genau welchen Zustand sie hat und der ist am Anfang beim Ausführen jedes Tests immer gleich.
3) Wir starten den Job und wissen was rauskommen soll, somit können den Zustand der DB prüfen.
Wäre so eine Vorgehensweise sinnvoll bzw. was für Alternativen gäbe es?
Gruß, madlena