Sprechende Packageaufrufe¶
- Motivation
Als Tester möchte ich eine Bibliothek generischer Testabläufe erstellen, die ich flexibel in meinen Testfällen wiederverwenden kann. Außerdem möchte ich, dass die Testschritte von der Formulierung her möglichst nah an meiner Spezifikation liegen.
- Generisches Referenzpackage erstellen
Zunächst erstelle ich mein Bibliothekspackage
StartStopEngine.pkg, welches meinen Motor startet bzw. stoppt und den Erfolg anhand eines von mir gewählten Signals prüft. Ich möchte dabei flexibel angeben können, ob ich starten oder stoppen will und mithilfe von welchem Signal ich den Erfolg überprüfe. Dazu lege ich im Package einen ParameterEngineRequestvom Typ Enum mit den Werten ‚Start‘ und ‚Stop‘ an:
Für das Lesen eines beliebigen Signals füge ich einen generischen Lesen-Testschritt mit dem Mapping-Namen
QuantityToCheckein. Als Bewertung gebe ich an, dass der Messwert entweder größer 0 (beim Starten) oder gleich 0 (beim Stoppen) sein soll:
- Referenzpackage mit sprechendem Namen verwenden
Anschließend möchte ich mein Referenzpackage
StartStopEngine.pkgin einem TestfallTestpackage.pkgverwenden. Beim ersten Aufruf soll der Motor gestartet und der erfolgreiche Start anhand des SignalsVehicleSpeedgeprüft werden. Beim zweiten Aufruf soll der Motor gestoppt und der Erfolg mithilfe vonEngineSpeedüberprüft werden. Außerdem möchte ich beide Packageaufrufe besser voneinander unterscheiden zu können und bereits anhand des Anzeigenamens erkennen, wie mein Bibliothekspackage parametriert ist.Um das zu erreichen, benötige ich einen Mapping-Eintrag für mein Bibliothekspackage
StartStopEngine.pkg. Das ist sowohl im Globalen Mapping als auch im Lokalen Mapping des aufrufenden Packages (hier:Testpackage.pkg) möglich.Für dieses Tutorial erstelle ich einen Eintrag im globalen Mapping. Im Bearbeitungsdialog des Mappings kann ich einen Alternativen Anzeigenamen vergeben. In diesem alternativen Anzeigenamen kann auf Werte der Parameter und Mappings des referenzierten Packages zugegriffen werden. Die benötigte Notation dafür ist ${Parameter.Mein_Parameter} für Parameter und ${Mapping.Mein_Mapping_Eintrag} für Mappings:
Im Mapping-Eintrag für
StartStopEngine.pkgreferenziere ichEngineRequestmit ${Parameter.EngineRequest} undQuantityToCheckmit ${Mapping.QuantityToCheck}. Deren Werte werden ersetzt, sobald ich den Mapping-Eintrag inTestpackage.pkggezogen und den Package-Aufruf parametriert habe.Als nächstes ziehe ich den Mapping-Eintrag also zweimal in
Testpackage.pkgund parametriere die Aufrufe wie gewünscht:
Der Anzeigetext meines Referenzpackages
StartStopEngine.pkginTestpackage.pkgenthält nun auch den alternativen Text mit den parametrierten Werten und ich kann auf einen Blick sehen, was meine Package-Aufrufe tun werden.