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
K
Zeile 1: Zeile 1:
 +
{{Hierarchy header}}
Zum Erstellen von Tests werden Klassen verwendet. Alle öffentlichen Methoden einer Testklasse werden von SimplyVBUnit als Test-Methode verwendet.
Zum Erstellen von Tests werden Klassen verwendet. Alle öffentlichen Methoden einer Testklasse werden von SimplyVBUnit als Test-Methode verwendet.
Zeile 70: Zeile 71:
{{related links|links=[[AccUnit|AccUnit Startseite]] ♦ [[AccUnit:Datengetriebene_Tests_in_SimplyVBUnit_v3|Funktionsweise von datengetriebenen Tests in SimplyVBUnit v3]]}}
{{related links|links=[[AccUnit|AccUnit Startseite]] ♦ [[AccUnit:Datengetriebene_Tests_in_SimplyVBUnit_v3|Funktionsweise von datengetriebenen Tests in SimplyVBUnit v3]]}}
 +
 +
{{Hierarchy footer}}

Version vom 17:12, 19. Sep. 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

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 Testmethode 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)

Weiterführende Links: AccUnit StartseiteFunktionsweise von datengetriebenen Tests in SimplyVBUnit v3