kostenloser Webspace werbefrei: lima-city


JUnit-Tests für Datenbankabfragen

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    m7d

    m7d hat kostenlosen Webspace.

    Moin moin,

    Ich arbeite im Moment an einem Softwareprojekt zur Finanzverwaltung. Dieses soll von verschiedenen Stellen aus die gespeicherten Daten abfragen und abändern können, daher hatte ich mich am Anfang für eine MySQL-Datenbank entschieden, um die Konsistenz zu bewahren.

    Das Problem das sich mir jetzt aber ergibt ist das ausführliche Testen. Vieles konnte ich bereits in geeigneten JUnit-Tests überprüfen. Bei einigen fachlichen Methoden müsste ich dann allerdings in die Datenbank schreiben oder Einträge enthalten haben, um sie zu löschen oder zu verändern.

    Meine Frage ist: Wie gehe ich da am besten vor, ohne den eigentlichen Inhalt der Datenbank zu verändern (Beispiel: Schreiben funktioniert, Löschen nicht). Und wie kann ich sichergehen, dass am Ende wieder alles in dem Zustand ist, wie er vorher war?
    Gibt es eine Möglichkeit über Java die gesamte Datenbank zu exportieren, zu speichern, und nach dem ausführen der Tests, wieder zu importieren? Oder muss ich auf eine zweite Datenbank für die Tests ausweichen?

    Ich hoffe mir kann hier jemand weiterhelfen. Ich bin mir nicht sicher welchen Weg ich gehen soll, und will ungerne einen unnötig aufwändigen beschreiten.

    Mit freundlichen Grüßen,
    M7D
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Da gibt es mehrere Möglichkeiten. Wenn du nicht gerade MySQL-Funktionen testen willst, dann kannst du eine Memory-Datenbank anlegen, sogar ganz ohne MySQL im Hintergrund, indem du einen anderen JDBC-Treiber nutzt. Möglich wäre da z.B. HSQLDB, die nur Dateien anlegt, die du nachher einfach löschen kannst.

    Wenn du die Ressourcen hast, dann kannst du auch einen eigenen Test-Server erstellen, auf dem zuvor ein definierter Stand der Datenbank eingespielt wird und dann der Test durchgeführt wird.

    Alternativ, aber nicht so flexibel und nur begrenzt nutzbar, könntest du auch Transaktionen nutzen, die du am Ende nicht festschreibst, sondern zurückrollst.

    Beitrag zuletzt geändert: 30.7.2015 15:46:30 von hackyourlife
  4. Autor dieses Themas

    m7d

    m7d hat kostenlosen Webspace.

    Die Ressourcen könnten "geschaffen" werden, aber besteht ein anderer Weg, würde ich diesen natürlich bevorzugen. Der andere JDBC-Treiber wirkt sehr interessant, den werde ich mir gleich mal näher anschauen, vielen Dank für den Tipp und die schnelle Antwort.




  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!