K (→Typo fixed) |
|||
(Der Versionsvergleich bezieht 5 dazwischenliegende Versionen mit ein.) | |||
Zeile 13: | Zeile 13: | ||
- einen String mit der Ziffer "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" | + | 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", es öffnet sich der Dialog zum Einfügen einer neue Testmethode: |
- | + | [[Bild: AccUnit-Test1.jpg]] | |
[[Bild: AccUnit-DialogEinfuegen.jpg]] | [[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 | + | 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 Dez2Bin 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" | Als zu testender Zustand tragen wir ein: "mitEingabe0" | ||
und als erwartetes Verhalten: "liefertdenString0" | und als erwartetes Verhalten: "liefertdenString0" | ||
Zeile 59: | Zeile 59: | ||
- Assert: Das erhaltene Ergebniss mit dem erwarteten Ergebniss vergleichen | - Assert: Das erhaltene Ergebniss mit dem erwarteten Ergebniss vergleichen | ||
- | Ändern | + | Ändern Sie also die Testprozedur ab: |
<source> | <source> | ||
Public Sub Dez2Bin_mitEingabe0_liefertdenString0() | Public Sub Dez2Bin_mitEingabe0_liefertdenString0() | ||
Zeile 77: | Zeile 77: | ||
End Sub | End Sub | ||
</source> | </source> | ||
+ | |||
+ | Den Test können Sie jetzt mit dem Kontextmenü der rechten Maustaste starten: "Aktiven Test ausführen". | ||
+ | Es öffnet sich ein zusätzliches Fenster in denen Ihnen TestUnit das Ergebnis des Tests anzeigt: | ||
+ | |||
+ | [[Bild: AccUnit-TestErgebnis1.jpg]] | ||
+ | |||
+ | Mit einem Rechtsklick auf die Testbeschreibung können Sie das Detailfenster mit der ausführlichen Fehlerbeschreibung aufrufen. Der erste Fehler ist recht schnell zu erkennen: Wir liefern noch überhaupt kein Ergebnis zurück! Ändern wir als unsere Dez2Bin Funktion ab, damit ein korrektes Ergebnis geliefert wird: | ||
+ | |||
+ | <source> | ||
+ | |||
+ | Public Function Dez2Bin(ByVal TheValue As Long) As String | ||
+ | Dez2Bin = "0" | ||
+ | End Function | ||
+ | |||
+ | </source> | ||
+ | |||
+ | Einmal den Test wieder starten ( Entweder über das Kontextmenü oder über die Symbolleiste ) und voilá : alle Tests wurden erfolgreich durchgeführt, wir sind im Status "GRÜN" | ||
+ | |||
+ | [[Bild: AccUnit-TestErgebnis2.jpg]] |
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", es öffnet sich der Dialog zum Einfügen einer neue Testmethode:
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 Dez2Bin 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.
In unserer Testprozedur Dez2Bin_mitEingabe0_liefertdenString0 sehen Sie schon durch die Kommentare angedeutet, aus welchen Schritten ein Test bestehen sollte:
- Arrange : Vorbereitungen zum Test - Variablen definieren - Vorgabewerte festlegen - Act: Die zu testende Funktion mit den Vorgabewerten aufrufen und das Ergebniss erhalten - Assert: Das erhaltene Ergebniss mit dem erwarteten Ergebniss vergleichen
Ändern Sie also die Testprozedur ab:
Public Sub Dez2Bin_mitEingabe0_liefertdenString0() ' Arrange Dim Eingabe As Long Dim Ergebniss As String Dim Erwartet As String Eingabe = 0 Erwartet = "0" ' Act Ergebniss = Dez2Bin(Eingabe) ' Assert Assert.That Ergebniss, Iz.EqualTo(Erwartet) End Sub
Den Test können Sie jetzt mit dem Kontextmenü der rechten Maustaste starten: "Aktiven Test ausführen". Es öffnet sich ein zusätzliches Fenster in denen Ihnen TestUnit das Ergebnis des Tests anzeigt:
Mit einem Rechtsklick auf die Testbeschreibung können Sie das Detailfenster mit der ausführlichen Fehlerbeschreibung aufrufen. Der erste Fehler ist recht schnell zu erkennen: Wir liefern noch überhaupt kein Ergebnis zurück! Ändern wir als unsere Dez2Bin Funktion ab, damit ein korrektes Ergebnis geliefert wird:
Public Function Dez2Bin(ByVal TheValue As Long) As String Dez2Bin = "0" End Function
Einmal den Test wieder starten ( Entweder über das Kontextmenü oder über die Symbolleiste ) und voilá : alle Tests wurden erfolgreich durchgeführt, wir sind im Status "GRÜN"