2016-04-25 10 views
2

Ich habe daran gearbeitet, Komponententests zu erstellen, die lokale Versionen eines Workflows ausführen. Ich folgte diesem guide für eine erste Einrichtung. Mit diesem Setup konnte ich einen Workflow erfolgreich ausführen und testen. Das Problem tritt auf, wenn ich versuche, eine Aktivitätsimplementierung, die als @ManualActivityCompletion markiert ist, in einem Unit-Test zu testen. Es scheint, dass die manuellen Vervollständigungsaktivitäten normalerweise innerhalb von Komponententests zurückgegeben werden (nicht auf einen Abschluss-/Fehleraufruf wartend).Komponententestaktivitäten markiert als @ManualActivityCompletion

Ich frage mich, ob es sogar möglich ist, Tests auf diese Weise manuell zu testen. Meine Vermutung ist, dass es nicht ist, da ich keine Erwähnung davon gesehen habe und ich sehe keine Möglichkeit, einen Test ManualActivityCompletionClient zu erstellen. In diesem Fall frage ich mich, ob jemand Vorschläge hat, wie manuelle Abschlussaktivitäten in einem lokalen Workflow getestet werden. Ich habe versucht, Workarounds dazu zu erstellen, indem Sie verschiedene Threads und Synchronisierungspunkte verwenden, aber es ist nützlich, mit dem tatsächlichen Verhalten der abschliessenden/fehlgeschlagenen Aktivitäten (Ausnahmen, die ausgelöst werden usw.) zu testen. Erwähnenswert ist, dass ich erfolgreiche Integrationseinheitstests für manuelle Abschlussarbeiten schreiben konnte.

Jede Hilfe wird sehr geschätzt.

Antwort

0

Um Workflow-Logik zu testen, die mit @ManualActivityCompletion markierte Aktivität aufruft, simulieren Sie die clientseitige Schnittstelle dieser Aktivität direkt. Da der Client im asynchronen Kontext des Workflows ausgeführt wird, können Sie mit Promises und WorkflowClock Ihre Tests implementieren.

Verwandte Themen