AccUnit

Unit Testing in VBA - Microsoft Access, Excel, …

Der erste Test

Aus AccUnit
Version vom 15:44, 28. Feb. 2011 bei KGunder (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Der erste Test

Den ersten Test wollen wir natürlich nicht mit einem komplexen sondern mit einem ganz simplen Beispiel beginnen: Es soll eine Funktion erstellt werden, die zu einem Dezimal Wert die binäre Darstellung liefert.

Ein entsprechende VBA Funktion könnte also so aussehen:

Public Function Dez2Bin(ByVal TheValue As Long) As String

Wie könnte also der erste Test lauten ?

 - Die Funktion Dez2Bin 
 - liefert bei einer Eingabe des Dezimalwerts 0 
 - einen String mit der Ziffer "0"

Erstellen Sie also ein neues Modul mit dem oben genannten Funktionsrumpf. Klicken Sie innerhalb dieser Funktion die rechte Maustaste und wählen Sie "Neue Testmethode einfügen". Datei:AccUnit Test1.jpg

es öffnet sich der Dialog zum Einfügen einer neue Testmethode: Bild: AccUnit-DialogEinfuegen.jpg

AccUnit wird zu unserem Modul mit den zu testenden Funktionen eine neue Testklasse erstellen, in denen dann die Testmethoden untergebracht sind. Das Modul mit der Funktion Dez2Bin habe ich "Umrechungen" genannt. AccUnit schlägt als Name für die Testklasse "UmrechnungeTest" vor, den Sie so übernehmen sollten. Bei den zu testenden Methode ist schon unsere Funktion De2Bin ausgewählt, so daß wir nur noch den zu testenden Zustand und das erwartete Verhalten eintragen müssen.

Als zu testender Zustand tragen wir ein: "mitEingabe0"
und als erwartetes Verhalten: "liefertdenString0"

AccUnit erzeugt aus diesen beiden Angaben den Namen der Testmethode. Achten Sie also darauf, daß Sie keine Leerzeichen, Anführungszeichen oder andere Sonderzeichen verwenden, die in Methodennamen nicht erlaubt sind.

AccUnit erzeugt die die Testklasse:

 Option Compare Text
 Option Explicit
 'AccUnit:TestClass
 '--------------------------------------------------------------------
 ' AccUnit Infrastructure
 '--------------------------------------------------------------------
 Implements SimplyVBUnit.ITestFixture
 Implements AccUnit_Integration.ITestManagerBridge
 Private TestManager As AccUnit_Integration.TestManager
 Private Sub ITestManagerBridge_InitTestManager(ByVal NewTestManager As AccUnit_Integration.ITestManagerComInterface): Set TestManager = NewTestManager: End Sub
 Private Function ITestManagerBridge_GetTestManager() As AccUnit_Integration.ITestManagerComInterface: Set ITestManagerBridge_GetTestManager =  TestManager: End Function
 Private Sub ITestFixture_AddTestCases(ByVal Tests As SimplyVBUnit.TestCaseCollector): TestManager.AddTestCases Tests: End Sub
 '--------------------------------------------------------------------
 ' Tests
 '--------------------------------------------------------------------
 '
 Public Sub Dez2Bin_mitEingabe0_liefertdenString0()
   ' Arrange
   Err.Raise vbObjectError, "Dez2Bin_mitEingabe0_liefertdenString0", "Not implemented"
   ' Act
   ' Assert
   Assert.That 1, Iz.EqualTo(1)
 End Sub

In dem Bereich 'AccUnit Infrastructure' werden ein paar Funktionen definiert die von der Testumgebung benötigt werden. Bitte nehmen Sie in diesem Bereich KEINE Änderungen vor.

Persönliche Werkzeuge