Gemeinsam zu mehr Effizienz in der Anwendungserstellung
Zum Erstellen von Tests werden Klassen verwendet. Alle öffentlichen Methoden einer Testklasse werden von SimplyVBUnit als Test-Methode verwendet.
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>
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 der Fertigstellung 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)