Teil 6: Ereignisgesteuerte Nachrichtenverteilung zwischen mehreren Packages

../../_images/Tut_PT_Part6.png

Ziel

Ereignisgesteuerte Nachrichtenverteilung zwischen mehreren Packages, die vom gleichen „Eltern“-Package erzeugt wurden.

Testerstellung

  1. Im Testfall-Editor zu „Sender“ wechseln, Zeile 3 auswählen und ein Wait von 500ms einfügen

  2. Im Testfall-Editor zu „Main“ wechseln und Zeile 4 auswählen

  3. „React-On Testschritt“ aus Tab Testschritte öffnen

  4. „Zeitereignis“ einfügen und als Wert „8“ angeben

  5. „Nachricht verfügbar“ einfügen und als Wert „receiveLine“ angeben

  6. „Rückgabewerte verfügbar“ einfügen und als Wert „sendCountOutput“ eintragen

  7. Anschließend sollte der Dialog wie in Abb. „Testschritt React-On“ aussehen und mit OK bestätigt werden

  8. 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)

  9. Zeilen 10-12 (Inbox lesen, 2x Outbox schreiben) auf Zeile 7 (ON INBOX receiveLine) ziehen

  10. Erwartung für „Aus Inbox lesen“ (Zeile 8) entfernen

  11. Zeile 12 (LOOP) entfernen

  12. Zeile 11 (ON VAR) auswählen und „Break-Testschritt“ einfügen

  13. Alle Packages speichern und das Main-Package ausführen

../../_images/ParalleleTests_ReactOn.png

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.