XesperantoX
Mitglied
Hallo,
ich hätte da mal eine Frage zum testen einer Webanwendung.
Die Persitenzschicht ist nach besten (Ge)wissen nach dem DAO-Pattern umgestzt worden mit einer Factory um ggf. auch andere DBS zu unterstützen (wird aber nie im leben passieren).
Da wir nach Vorgabe unsereres Betreuers (Dozent) kein O/R Mapper verwendet haben sind die DAO-Klassen alle mit dem nötigen JDBC-Code versehen. Da wir ein Composite Transfer Object verwenden bekommen die DAOs (bis auf einige ausnahmen) immer das entsprechende TO übergeben und können dann die CRUD-Operationen durchführen.
Meine eigentliche Frage ist jetzt wie ich die DAO-Klassen am einfachsten/sinnvollsten testen kann. Mein Problem bei den Überlegungen ist das die Connections zur DB (MySQL) in den DAO-Klassen über eine Helper-Klasse aufgebaut werden und ich mit JUnit ja (meines Wissens) keine Rollbacks machen könnte, da die Connection, Statements und ResultSets immer am Ende der Methoden in einem Finally-Block geschlossen werden.
Möglichkeiten die mir vorschweben:
1.) Mit JUnit testen und immer nach dem testen einen Dump der Datenbank über die Datenbank jagen... hmm...
2.) Mit JUnit testen und den Code der Helper-Klasse so abändern das der TestCase ein Rollback durchführen kann. DAzu müsste ich aber den Code der App verändern um die Tests zu integrieren...
3.) DBUnit? Was ich bisher gelesen habe schien mir immer mehr in Richtung reiner DB-Test zu gehen.
Wäre super wenn mir jemand sagen könnte ob einer meiner Wege sinnvoll ist oder es vllt. doch eine bessere Alternative gibt von der ich keine Ahnung habe... ;-)
Grüße
Sascha
ich hätte da mal eine Frage zum testen einer Webanwendung.
Die Persitenzschicht ist nach besten (Ge)wissen nach dem DAO-Pattern umgestzt worden mit einer Factory um ggf. auch andere DBS zu unterstützen (wird aber nie im leben passieren).
Da wir nach Vorgabe unsereres Betreuers (Dozent) kein O/R Mapper verwendet haben sind die DAO-Klassen alle mit dem nötigen JDBC-Code versehen. Da wir ein Composite Transfer Object verwenden bekommen die DAOs (bis auf einige ausnahmen) immer das entsprechende TO übergeben und können dann die CRUD-Operationen durchführen.
Meine eigentliche Frage ist jetzt wie ich die DAO-Klassen am einfachsten/sinnvollsten testen kann. Mein Problem bei den Überlegungen ist das die Connections zur DB (MySQL) in den DAO-Klassen über eine Helper-Klasse aufgebaut werden und ich mit JUnit ja (meines Wissens) keine Rollbacks machen könnte, da die Connection, Statements und ResultSets immer am Ende der Methoden in einem Finally-Block geschlossen werden.
Möglichkeiten die mir vorschweben:
1.) Mit JUnit testen und immer nach dem testen einen Dump der Datenbank über die Datenbank jagen... hmm...
2.) Mit JUnit testen und den Code der Helper-Klasse so abändern das der TestCase ein Rollback durchführen kann. DAzu müsste ich aber den Code der App verändern um die Tests zu integrieren...
3.) DBUnit? Was ich bisher gelesen habe schien mir immer mehr in Richtung reiner DB-Test zu gehen.
Wäre super wenn mir jemand sagen könnte ob einer meiner Wege sinnvoll ist oder es vllt. doch eine bessere Alternative gibt von der ich keine Ahnung habe... ;-)
Grüße
Sascha