Skip to content

Mittels Annotations können Files angegeben werden dessen Inhalt vor jedem JUnit-Test in die Datenbank geschrieben werden. Nach dem JUnit-Test kann überprüft werden, ob die Daten in der Datenbank richtig manipuliert wurden.

License

Notifications You must be signed in to change notification settings

rene-anderes/dbUnitBurner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dbUnitBurner

Diese JUnit-Rule bietet die Möglichkeit mittels Annotations die für den Test notwendigen DB-Files (XML, CSV, XLS und JSON) anzugeben:

   @UsingDataSet(value = { "/prepare.json" })

Es können auch mehrere Files angegeben werden:

   @UsingDataSet(value = { "/Person.json", "Offer.json" })

Ebenfalls können das oder die Files angegeben werden mittels denen DBUnit die Datenbank nach der Test-Methode überprüft:

   @ShouldMatchDataSet(
        value = { "/expectedAfterDelete.json" },
        excludeColumns = { "INGREDIENT.ID" },
        orderBy = { "RECIPE.UUID", "INGREDIENT.ID" })

Wie das Beispiel zeigt können Sortierung und Ausnahmen für den Vergleich definiert werden. Format: [Tabellenname].[Spaltennamen]

Wenn gewünscht, kann auch ein SQL-Script angegeben werden, mittels dem die Tabelle(n) vor der Test-Methode gelöscht werden.

   @CleanupUsingScript(value = { "/sql/DeleteTableContentScript.sql" })

Es ist auch möglich, dass für das Laden von Testdaten ein (oder mehrere) SQl-Script(s) verwendet wird:

  @UsingDataSetScript(value = { "/sql/LoadTestdata.sql" })

Die SQL-Scripts sollten im UTF-8 Format (ohne BOM) vorliegen. Eine Zeile im SQL-Script entspricht einem SQL-Kommando. Ein Delimiter wie z.B. ';' ist nicht notwendig.

Es wird im Klassenpfad nach den entsprechenden Files gesucht. Als Basis für diese JUnit-Rule dient DBUnit

Die Annotierungen @UsingDataSet, @UsingDataSetScript und @CleanupUsingScript können sowohl für eine Methode als auch für eine Klasse gesetzt werden. Werden die Annotierungen auf der Klasse angebracht, so wird für jede Test-Methode die entsprechenden Files verwendet.

Beispiel JUnit-Test

@UsingDataSet(value = { prepare.json })
public class ProcessFacadeIT {

    @Rule
    public DbUnitRule dbunitRule = new DbUnitRule(Persistence.createEntityManagerFactory("pu").getConnection());

    @Test
    @ShouldMatchDataSet(value = { "ProcessAfterRemove.json" }
    public void shouldBeRemoveProcess() {
        ...
    }

}

Weiter Dokumentationen siehe im Wiki: https://github.com/rene-anderes/dbUnitBurner/wiki

About

Mittels Annotations können Files angegeben werden dessen Inhalt vor jedem JUnit-Test in die Datenbank geschrieben werden. Nach dem JUnit-Test kann überprüft werden, ob die Daten in der Datenbank richtig manipuliert wurden.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages