Teil 6: Ereignisgesteuerte Nachrichtenverteilung zwischen mehreren Packages¶
Ziel
Ereignisgesteuerte Nachrichtenverteilung zwischen mehreren Packages, die vom gleichen „Eltern“-Package erzeugt wurden.
Testerstellung
Im Testfall-Editor zu „Sender“ wechseln, Zeile 3 auswählen und ein Wait von 500ms einfügen
Im Testfall-Editor zu „Main“ wechseln und Zeile 4 auswählen
„React-On Testschritt“ aus Tab Testschritte öffnen
„Zeitereignis“ einfügen und als Wert „8“ angeben
„Nachricht verfügbar“ einfügen und als Wert „receiveLine“ angeben
„Rückgabewerte verfügbar“ einfügen und als Wert „sendCountOutput“ eintragen
Anschließend sollte der Dialog wie in Abb. „Testschritt React-On“ aussehen und mit OK bestätigt werden
Parallelen Packageaufruf „Sender“ von Zeile 2 auf Zeile 6 (AFTER 8) ziehen (stellt sicher, dass der Packageaufruf nicht vor Eintritt in React-On beendet ist)
Zeilen 10-12 (Inbox lesen, 2x Outbox schreiben) auf Zeile 7 (ON INBOX receiveLine) ziehen
Erwartung für „Aus Inbox lesen“ (Zeile 8) entfernen
Zeile 12 (LOOP) entfernen
Zeile 11 (ON VAR) auswählen und „Break-Testschritt“ einfügen
Alle Packages speichern und das Main-Package ausführen
Testschritt React-On¶
Ergebnis
Am Anfang werden die beiden Receiver-Packages gestartet und warten fortan auf Nachrichten. Im React-On-Testschritt wird nach 8ms das Senderpackage parallel gestartet. Dadurch ist sichergestellt, dass das Senderpackage nicht bereits beendet ist, wenn das React-On betreten wird (Deadlock). Das SenderPackage sendet nun aller 500ms eine Nachricht an das Hauptpackage. Dieses wartet im React-On auf diese Nachrichten, liest sie aus und leitet sie an die Receiver-Packages weiter. Sobald das SenderPackage beendet ist, wird die sendCountOutput-Variable beschrieben und folglich der entsprechende ON VAR-Abschnitt betreten. Das IF überprüft, ob genauso viele Nachrichten weitergeleitet wie gesendet wurden und bewertet das Ergebnis. Das folgende Break verlässt daraufhin den React-On-Testschritt.