Senfgurke ist ein beispielgesteuertes Testframework für VBA. Was bedeutet das? Mit Senfgurke können Sie in natürlicher Sprache gegebene Beispiele in automatisierte Tests umwandeln, die von VBA (Visual Basic for Applications) ausgeführt werden.
VORSICHT! Dies ist in Arbeit. Zukünftige Versionen könnten Ihren Testautomatisierungscode von älteren Versionen beschädigen!
Stellen Sie sich vor, jemand bittet Sie, eine neue „spezielle“ Summenfunktion für Excel zu schreiben, die dem Ergebnis den Wert 1 hinzufügt, indem er Ihnen dieses Beispiel gibt:
Example: add +1 to sum
Given a is 2
And b is 3
When sum+1 is applied to a and b
Then the result is 6
Sie können dieses Beispiel nun zu einer Funktion hinzufügen und alles in der Datei „sum_plus_one.feature“ in einem Verzeichnis mit dem Namen „features“ speichern. Das Verzeichnis sollte sich am selben Ort befinden wie Ihre Office-Datei, die Ihren VBA-Code enthält.
Wenn Sie Senfgurke zum ersten Mal ausführen, wird Ihnen vorgeschlagen, eine neue Funktion wie diese hinzuzufügen:
Public Sub Given_a_is_INT_C722764574FB(step_parameters As Collection)
'Given a is 2
End Sub
Bitte nicht mit dem C722764574FB-Teil des Funktionsnamens verwechseln. Dieser Hashwert hilft Senfgurke, die Funktion mit dem ursprünglichen Schritt aus dem Beispiel abzugleichen. Jetzt liegt es an Ihnen, die Funktion mit Code zu füllen, damit Sie Ihre neue Funktion testen können, um sicherzustellen, dass sum+1 die richtigen Ergebnisse liefert.
Wenn Sie dies für jeden Schritt des Beispiels wiederholt haben und Senfgurke ausführen, erhalten Sie möglicherweise Folgendes auf der Konsole:
Feature: sum plus one
Rule: add one to sum results
Example: add +1 to sum
OK Given a is 2
OK And b is 3
OK When sum+1 is applied to a and b
OK Then the result is 6
Auf diese Weise teilt Ihnen Senfgurke mit, ob Ihr Code erfolgreich war oder einen Fehler verursacht hat.
Senfgurke wird als anwendungsspezifisches Add-In bereitgestellt. Auf diese Weise können Sie die zu testende Anwendung einfach vom Senfgurke-Testframework trennen. Um eine neue VBA-Anwendung zu starten, gehen Sie folgendermaßen vor:
Die folgende Ereigniskarte erklärt, was passiert, wenn Sie Senfgurke bitten, Ihre Funktionen auszuführen.
Tests werden normalerweise über das VBA-Konsolenfenster gestartet. Auf diese Weise können Sie Tags oder Filter (für Dateinamen) hinzufügen, um den Testlauf auf bestimmte Tags oder Feature-Dateien zu beschränken.
Als Erstes sucht Senfgurke nach Feature-Dateien und lädt sie zur späteren Verarbeitung in den Speicher.
Da alle Funktionen im Speicher vorhanden sind, kann Senfgurke die Gherkin-Sprache einfacher in detaillierte Anweisungen für die spätere Ausführung übersetzen (analysieren). Beispiele ohne passende Tags, die beim Teststart festgelegt wurden, können beispielsweise für die spätere Ausführung ignoriert werden oder Hintergrundschritte einer Funktion werden zu jedem Beispiel (auch Szenario genannt) in dieser Funktion hinzugefügt.
Im nächsten Schritt geht es natürlich darum, alle detaillierten Ausführungsanweisungen aus dem vorherigen Schritt auszuführen. Dazu gehört auch die Rückgabe aller Ergebnisse der Ausführung.
Parallel zur Ausführung der oben genannten Funktionen werden Ergebnisse in verschiedenen Formaten gemeldet. Standard ist das ausführliche Format, das die Gherkin-Funktionen in das VBA-Konsolenfenster schreibt, indem einfach das Ausführungsergebnis zu jedem Schritt der Beispiele hinzugefügt wird.
Am Ende jedes Testlaufs fügt Senfgurke einige Statistiken hinzu, beispielsweise Dauer und Anzahl der ausgeführten Beispielschritte.
Eine ausführlichere Dokumentation finden Sie in den Feature-Dateien für Senfgurke, beginnend mit dem vom Feature Indexer generierten Index.
Das FMC-Blockdiagramm zeigt, dass der typische Aufbau aus drei Schichten besteht:
Einige allgemeine Entscheidungen finden Sie im Architekturentscheidungsprotokoll.
Die mehrschichtige Architektur soll sicherstellen, dass die von Senfgurke bereitgestellte Funktionalität von der Anwendungslogik getrennt ist.
TBC