2017-09-24 1 views
0

Gibt es eine Möglichkeit, das zu tun? Ich möchte einige SQL-Anforderungen testen, die DELETE- und UPDATE-Anweisungen enthalten, die Änderung aber nicht übernehmen wollen.Testen (JUnit) SQL DELETE und UPDATE-Anweisung ohne zu committen

+1

Deaktivieren Sie die automatische Festschreibung und führen Sie Ihre SELECT in der gleichen Transaktion wie Ihre UPDATE oder DELETE? –

+0

Was müssen Sie testen? Wenn Sie das Commit übergehen, werden Sie auch alle Überprüfungen verpassen, die in schiebbaren Constraints implementiert sind (wenn Ihre DB diese unterstützt). Normalerweise testen Sie den Datenzugriff, so dass Sie die Datenbank einrichten (dedizierte Test-DB oder speicherinternen Datenbank), bevor Sie die Tests ausführen und die DB nach dem Ausführen der Tests bereinigen/verwerfen. –

+1

Klingt wie Integrationstests, nicht Unit-Tests für mich – Catchwa

Antwort

0

Kommt wirklich auf RDBMS an, das Sie verwenden. In Oracle können Sie alles zurücksetzen, bis Sie das Commit ausführen. In transaktionalen DBs gibt es normalerweise eine Option, um eine Transaktion zu öffnen, mit einigen Daten zu verwirbeln und dann zu schließen oder rückgängig zu machen.

Der beste Weg ist jedoch, eine Kopie einer Tabelle mit einem Stück Daten zu machen und alles dort zu versuchen.

PS: Leg dich nicht mit Prod an! :)