Wiki der Access Code Library

Gemeinsam zu mehr Effizienz in der Anwendungserstellung

AccUnit:Tests erstellen

Aus Access Code Library
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
K (Die Seite wurde neu angelegt: „Zum Erstellen von Tests werden Klassen verwendet. Alle öffentlichen Methoden einer Testklasse werden von SimplyVBUnit als Test-Methode verwendet. ==== Einfachst…“)
K (Row Tests)
Zeile 60: Zeile 60:
End Sub
End Sub
</source>
</source>
-
Die Dummy-Methode ''Row'' ermöglicht die Nutzung von IntelliSense, wenn die Code-Zeile erst nach der Fertigstellung auskommentiert wird.
+
Die Dummy-Methode ''Row'' ermöglicht die Nutzung von IntelliSense, wenn die Code-Zeile erst nach dem Schreiben der Parameterwerte auskommentiert wird.
Als weitere Variante kann statt ''TestManager.Row'' der Prozedurname verwendet werden.
Als weitere Variante kann statt ''TestManager.Row'' der Prozedurname verwendet werden.

Version vom 19:36, 31. Aug. 2010

Zum Erstellen von Tests werden Klassen verwendet. Alle öffentlichen Methoden einer Testklasse werden von SimplyVBUnit als Test-Methode verwendet.

Einfachste Form einer Testklasse

Option Explicit
 
Public Sub SimpleTestProc_Success()
 
   Assert.That 1, Iz.EqualTo(1)
 
End Sub
 
Public Sub SimpleTestProc_Failure()
 
   Assert.That 1, Iz.EqualTo(0)
 
End Sub

Falls dieser Test vom AccUnit-Add-In automatisch aus den Klassen des VB-Projektes erkannt werden soll, ist noch folgende Zeile im Kopfbereich der Klasse einzufügen:

'<AccUnit><testclass>true</testclass></AccUnit>

Row Tests

Bei Row Tests wird eine Testmethode mit unterschiedlichen Parameterwerten ausgeführt. Damit SimplyVBUnit diese Tests erkennt, muss SimplyVBUnit.ITestCaseData als Schnittstelle verwendet werden.

Implements SimplyVBUnit.ITestCaseData
 
Private Sub ITestCaseData_GetTestData(ByVal test As SimplyVBUnit.TestDataBuilder)
   ' hier erfolgt die Übergabe der Test-Werte
End Sub

Um die Übergabe der Testwerte etwas übersichtlicher zu gestalten, kann noch zusätzlich AccUnit_Integration.ITestManagerBridge implementiert werden. Damit wird es möglich, die Testwerte als Kommentarzeile oberhalb der jeweiligen Testmethoden zu schreiben.

Implements AccUnit_Integration.ITestManagerBridge
Implements SimplyVBUnit.ITestCaseData
 
Private TestManager As AccUnit_Integration.TestManager
 
Private Sub ITestManagerBridge_InitTestManager(ByVal NewTestManager As AccUnit_Integration.ITestManagerComInterface)
   Set TestManager = NewTestManager
End Sub
 
Private Sub ITestCaseData_GetTestData(ByVal test As SimplyVBUnit.TestDataBuilder)
   TestManager.GetTestData test
End Sub
 
'TestManager.Row("a", "b", "ab")
'TestManager.Row("abc", "def", "abcdef")
Public Sub RowTest_Sub_Strings(ByVal x As String, ByVal y As String, ByVal expected As String)
 
   Dim actual As String
   actual = x + y
 
   Assert.That actual, Iz.EqualTo(expected)
 
End Sub

Die Dummy-Methode Row ermöglicht die Nutzung von IntelliSense, wenn die Code-Zeile erst nach dem Schreiben der Parameterwerte auskommentiert wird.

Als weitere Variante kann statt TestManager.Row der Prozedurname verwendet werden.

'RowTest_Sub_Strings("a", "b", "ab")
'RowTest_Sub_Strings("abc", "def", "abcdef")
Public Sub RowTest_Sub_Strings(ByVal x As String, ByVal y As String, ByVal expected As String)