Evaluierung der Rückgabewerte von Bibliothekspackages¶
- Motivation
Als Tester möchte ich eine Bibliothek generischer Testabläufe erstellen, die ich flexibel in meinen Testfällen wiederverwenden kann. Ein Teil der Bibliothekspackages generiert dabei intern Rückgabewerte. Diese möchte ich direkt im Packageaufruf bewerten.
- Referenzpackage mit Rückgabewerten erstellen
Ich nutze das Package
StartStopEngine.pkgaus dem Tutorial zu den Sprechenden Packageaufrufen als Vorlage. Dieses Package startet bzw. stoppt ein Motoren-Modell und prüft den Erfolg des Starts/Stops mithilfe eines von mir gewählten Signals. Statt das Ergebnis des Lesens meiner generischen Größe jedoch direkt in meinem Package zu bewerten, speichere ich es als Rückgabewert QuantityToCheckResult:
- Bewertung des Rückgabewertes
Anschließend erstelle ich ein neues Package
TestPackageWithReturnValueEvaluation.pkg, in welchem ichStartStopEngineWithReturnValue.pkgaufrufe. Ich parametriere den Aufruf so, dass mein Motoren-Modell gestartet und anhand der GrößeEngineSpeedgeprüft wird, ob das Starten erfolgreich war. Da ich einen Rückgabeparameter angegeben habe, wird mir dieser im Tab Parametrierung des Package-Parametrierung-Dialogs angezeigt. Dort kann ich auch meine Erwartung angeben und setze sie auf „>0“:
Wenn ich
TestPackageWithReturnValueEvaluation.pkgausführe, erhält der Aufruf vonStartStopEngineWithReturnValue.pkgeine Bewertung entsprechend meiner definierten Erwartung und ich kann alle nötigen Informationen auf einen Blick einsehen:
- Verwendung von Zeitoptionen zur Bewertung des Rückgabewertes
Die Bewertung des Rückgabewertes kann auch an zeitliche Bedingungen geknüpft werden. Dazu klappe ich nach dem Setzen des Erwartungswerts das Panel Zeitoptionen aus. Mit der Option Warte bis wahr lege ich fest, dass das erwartete Ergebnis innerhalb einer gewissen Zeit eingetreten sein muss. Ich setze die Zeitüberschreitung auf 10 Sekunden und den Polling-Zyklus auf 500ms, wodurch das Package alle 500ms ausgeführt wird, bis entweder alle Erwartungen erfüllt wurden (Erfolgsfall) oder nicht alle Erwartungen erfüllt sind und die maximale Ausführungszeit von 10 Sekunden erreicht wurde (Fehlerfall).
Durch das Setzen der Zeitoptionen erhalte ich zusätzliche Informationen zur verwendeten Zeitoption und der Anzahl der Durchläufe in den Details der Testergebnisse.
Eine detaillierte Beschreibung aller Zeitoptionen findet sich im Kapitel Zeitoptionen.