Ich bin gerade dabei, Tests für meine Datenzugriffsklassen zum MSSQL-Server aufzubereiten.
Problemstellung: Wie testet man, ohne die Test-DB durch die Tests dauerhaft zu verändern.
Ich mache das derzeit wie bei Tests mit Access-Datenbanken, dass ich mir an einer Stelle eine Vorlage (mdf + ldf) bereitstelle, diese Vorlage in ein Verzeichnis kopiere und dann die DB per sp_attach_db anhänge. Nach dem Test wird die DB wieder abgehängt und gelöscht, damit später wie die Vorlage kopiert werden kann.
Diesen Vorgang (oder einen besseren - falls ihr einen besseren Weg kennt) würde ich gerne direkt in AccUnit bereitstellen, da das lästiger Code in meiner Anwendung ist.
Wie könntest ihr auch so einen Funktionsaufruf aus AccUnit vorstellen?
Ich dachte an folgendes:
- Code: Alles auswählen
'AccUnit:Database.Init("MSSQL", "Server", "DatabaseName1", "OriginalDateiDieKopiertWird", "Zielverzeichnis")
'AccUnit:Database.Init("JET", "", "DatabaseName2", "OriginalDateiDieKopiertWird", "Zielverzeichnis")
Public Sub Setup()
TestManager.Database.AttachDatabases
' oder
TestManager.Database.AttachDatabase("DatabaseName1")
' oder
' ? ? ?
End Sub
Public Sub Teardown()
TestManager.Database.Detach
End Sub
Was meint ihr?
Anm.: Der Weg über Transaktionen funktioniert meiner Ansicht nach nur bei einfachen Tests, wo man prüfen will, dass das Schreiben funktioniert. Allerdings wird bei Jet dann auch der Autowert hochgezählt, wenn man ein Rollback durchführt. => Test-DB entspricht nicht mehr dem Original.
LG
Josef