13 December 2005

VB6 Unit Testing: Wir brauchen doch keine Datenbank

Mit besten Dank an Sebastian von Däniken

Weg mit der Datenbank!

Wer clever Unit Tests schreibt, testet nicht gegen eine richtige Datenbank, sondern versucht diese zu simulieren. Test gegen externe Systeme wie Datenbanken, Netzwerke, etc. sollten generell vermieden werden, da man den Ausgang der Test nicht von deren Verfügbarkeit abhängig machen will.

Datenbankabfrage als XML Datei speichern


In MS ActiveX Data Objects (ADO) lasst sich mit der Klasse ADODB.Recordset eine Abfrage in eine Textdatei (XML oder Microsoft Advanced Data TableGram). Das nachfolgende Beispiel verwendet die XML Variante als Speichermedium. Bei grossem Datenumfang ist die MS ADTG Variante schneller sein, da es sich um ein binäres Format handelt.


Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset

Set conn = New ADODB.Connection

conn.Open "DSN=myDNS;", "meinUser", "MeinPasswort"

Set rs = conn.Execute("SELECT * FROM Kunde WHERE Vorname = 'Silvio';")

rs.Save "c:\myADO.xml", adPersistXML

conn.Close

Set rs = Nothing
Set conn = Nothing