Ich verwende DbUnit zusammen mit Unitils, was die meiste Zeit gut funktioniert.
Heute bin ich auf ein seltsames Problem gestoßen.
Situation ist:
-
Ich verwende Hibernate, und habe id mit "increment" Generator:
<id name="Id"> <generator class="increment"/> </id>
-
Ich bereite einen Testdatensatz vor, bei dem die maximale ID 5 ist.
-
Ich verwende die Strategie des sauberen Einlegens.
-
Ich habe zwei Testmethoden
test1
ytest2
, die jeweils eine Zeile in dieser Tabelle hinzufügen. -
Nach
test1
Methode neu hinzugefügte Zeile hat id=6. -
Nach
test2
Methode neu erstellte Zeile hat id=7.
Das ist alles in Ordnung und ich verstehe, warum das so ist. Aus Sicht der Wartung ist es jedoch ein Problem. Wenn ich jemals eine dritte Testmethode zwischen den beiden hinzufüge, wird die Methode test2
plötzlich fehlschlagen, obwohl sich nichts geändert hat, nur weil die Zeile eine andere ID erhält.
Gibt es irgendwie kann ich DbUnit oder Hibernate erzwingen, um nächste id-Wert vor jeder Testmethode zu berechnen?