Testgetriebene Entwicklung mit Access

Testfixtures

Mit den Testfixtures geht es nun an den Kern der Sache: Die Testklassen enthalten die eigentlichen Tests sowie die Methoden, die vor und nach jedem Test durchgeführt werden sollen.

Listing 3 zeigt, wie die Beispieltestklasse aussieht. Die Klasse besteht aus den folgenden Elementen:

Option Compare Database
Option Explicit
Public Sub Setup()
'put in test preparations:
'Create testdata, objects...
End Sub
Public Sub Teardown()
'put in things like:
'delete testdata, set object variables to nothing etc.
End Sub
Public Property Get Fixturename() As String
'Set Fixturename = Name of this class
Fixturename = "clsSampleTest"
End Property
'Create as many Test Sub procedures as you want. Each of them will be called by
'the Testmaker and for each this class will be initialized and run the Setup method
'before and the TearDown method after calling the assertions of the current test.
'***Important: The sub's name must begin with 'test...'!***
Public Sub Test1(objTestcase As auTestcase)
On Error GoTo RunTest_Err
'Put in Tests like this:
objTestcase.Assert "Sample assertion 1a", True
objTestcase.Assert "Sample assertion 1b", True
Exit Sub
RunTest_Err:
objTestcase.Assert "#Error in " & Me.Fixturename, False
Resume Next
End Sub
Public Sub Test2(objTestcase As auTestcase)
On Error GoTo RunTest_Err
objTestcase.Assert "Sample assertion 2a", True
objTestcase.Assert "Sample assertion 2b", True
Exit Sub
RunTest_Err:
objTestcase.Assert "#Error in " & Me.Fixturename, False
Resume Next
End Sub

  • Setup-Methode: Wird vor jedem Test aufgerufen.

  • Teardown-Methode: Wird nach jedem Test aufgerufen.

  • Eigenschaft Fixturename: Enthält den Namen der Testklasse.

  • Testmethoden (Test1, Test2): Enthalten die eigentlichen Tests. Wichtig: Der Name einer Testklasse muss mit „Test“ beginnen, andernfalls wird die Methode nicht berücksichtigt.