Gemeinsam zu mehr Effizienz in der Anwendungserstellung
K (→Row Tests) |
K |
||
Zeile 20: | Zeile 20: | ||
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: | 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: | ||
<source lang="vb"> | <source lang="vb"> | ||
- | ' | + | ' AccUnit:TestClass |
</source> | </source> | ||
Zeile 69: | Zeile 69: | ||
</source> | </source> | ||
- | {{related links|links=[[AccUnit | + | {{related links|links=[[AccUnit|AccUnit Startseite]] ♦ [[AccUnit:Datengetriebene_Tests_in_SimplyVBUnit_v3|Funktionsweise von datengetriebenen Tests in SimplyVBUnit v3]]}} |
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
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 Startseite ♦ Funktionsweise von datengetriebenen Tests in SimplyVBUnit v3