Wie kann ich für eine Ereignisfolge testen in Flexunit 4?
-
19-09-2019 - |
Frage
Ich habe eine Komponente, dass bei der Erstellung, zwei Ereignisse zu bevölDatenFelder entsendet. Die Ereignisse sollten getrennt bleiben, weil sie an anderer Stelle für verschiedene Aktionen gewohnt sind.
Ich möchte einen asynchronen Flexunit-Tests zur Bestätigung schreiben, dass diese Ereignisse beide gesendet werden. Das Problem ist, sie sind beide Varianten des gleichen Ereignisses.
Hier ist der Code:
Komponente:
internal function creationComplete(): void {
new GetDataEvent(GetDataEvent.GET_DATA, "aField").dispatch();
new GetDataEvent(GetDataEvent.GET_DATA, "anotherField").dispatch();
}
Test (soweit ich es haben):
[Test(async)]
public function creationCompleteShouldLoadRequiredData(): void {
Async.handleEvent(this, new CairngormEventDispatcherAdapter(), GetDataEvent.GET_DATA,
function(event: Event, ...rest): void {
assertThat(event, hasProperty("data", hasProperty("field", "aField")));
});
fixture.creationComplete();
}
Die Sache ist, diese Tests nur, dass das erste get Daten-Ereignis ausgelöst wird, und schlimmer noch, hängt von der Reihenfolge des Veranstaltungs Versands. Wie kann ich diese beiden Ereignisse testen, die schließlich durch dieses Verfahren ausgesendet, unabhängig von ihrer Ordnung?
Lösung
Überprüfen Sie heraus Sequenzen: http://docs.flexunit.org/index .php? title = Sequenzen # Sequences_from_Fluint
Sie könnten eine SequenceWaiter für das erste Ereignis hinzufügen und überprüfen Sie die zweite Veranstaltung mit dem endgültigen AssertHandler.