• Willkommen im Zend Framework Forum

    ZF1 Zend Framework 1 + ZF2 Zend Framework 2

    Das Zend Framework Forum ist seit 2006 die erste Anlaufstelle für Zend Framework Entwickler in Deutschland. Mit über 70.000 Beiträgen und einer steigenden Nutzerzahl bietet das Forum hilfreiche Themen und ZF-Tutorials für professionelle Entwickler, fortgeschrittene Programmierer sowie Zend Framework Einsteiger.
    Wenn dies Dein erster Besuch in der Zend Framework Community ist, lies bitte zuerst die Hilfe - FAQ durch. Du musst Dich registrieren, bevor Du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um die Registrierung zu starten. Du kannst auch jetzt schon Beiträge lesen. Hier im Forum findest Du die Zend Framework Hilfe, die Du suchst!

    Grüße an alle Zend Framework Entwickler. Das Team vom Zend Framework Forum!

    Drupal Agentur

UnitTest für Datenbank-Schema in Repository sinnvoll?

Norman

New member
Hallo zusammen,

ich stelle mir gerade die Frage, ob ein Testen des Datenbankschemas in einem Datenbank-Repository sinnvoll ist - oder ob es dafür eine
bessere Stelle gibt?

Beispiel:

Ich habe ein DB-Repository zum Speichern und Laden von Benutzer-Accounts. Jetzt möchte ich z.B. Sicherstellen das beim Anlegen eines
doppelten Benutzeraccounts (über unique key) eine Exception geschmissen wird.

Das Datenbankschema wird über ein externes Installationsskript erzeugt.
Ist es daher ratsam den Test auf doppelte Datensätze im Repository selbst zu machen?

Viele Dank für eure Hilfe.
Gruß Norman
 

DennisBecker

Super-Moderator
Also was du hier beschreibst lässt sich evtl. noch durch Mocking des Datenbankaufrufs in einem Unit Test integrieren. D.h. also, es läuft keine Datenbank!

Wenn die Datenbank laufen muss, dann sprechen wir hier von einem Systemtest, ob die Datenbank richtig funktioniert.

Desweiteren gibt es bestimmt auch Tools, die Test auf SQL Scripts ausführen können.




Die Frage ist halt: was willst du am Ende testen? Gibt es Vorgaben und wie sehen diese aus? Was reicht dir selbst aus? Für Unit Tests z.B. will ich weder eine Datenbank noch eine Replik (in memory z.B.) einsetzen, weil es die Laufzeit stark verlängert und diese Test nicht mehr unabhängig ist.
 

Norman

New member
Ok was ich testen will ist einfach, ob abgefangen wird das bei einem doppelten Insert eine Exception geschmissen wird
(aufgrund des gesetzten Datenbankschemas)

Ich denke es handelt es sich dabei dann um einen Systemtest und das quasi dafür auch eine reale Datenbank benötigt wird.

Ich bin mir dabei nur unsicher ob das indirekte Testes des Datenbankschemas dabei in der RepositoryTest-Klasse erfolgen soll.

Gruß
Norman
 

SeKrebs

New member
Google mal nach "db unit test". Hab mich damit nicht weiter auseinander gesetzt, aber der erste Treffer heißt gleich "dbunit" und wenn das nicht passt, würds mich trotzdem wundern, wenn es sowas nicht doch noch irgendwo gibt ;)
 
Oben