Domanda

Ho un componente che, sulla creazione, invia due eventi per popolare i campi di dati. Gli eventi dovrebbero rimanere separati perché sono usati altrove per azioni distinte.

Voglio scrivere un test FlexUnit asincrono per confermare che questi eventi sono entrambi inviati. Il problema è che sono entrambe le varianti dello stesso evento.

Ecco il codice:

Componente:

internal function creationComplete(): void {
    new GetDataEvent(GetDataEvent.GET_DATA, "aField").dispatch();
    new GetDataEvent(GetDataEvent.GET_DATA, "anotherField").dispatch();
}

Prova (per quanto ce l'ho):

[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();
}

Il fatto è che questo solo test che il primo evento Get Data viene spedito, e peggio, dipende dall'ordine di spedizione evento. Come posso provare che entrambi questi eventi sono poi inviati da questo metodo, indipendentemente dal loro ordine?

È stato utile?

Soluzione

Visualizza il Sequenze: http://docs.flexunit.org/index .php? title = Sequenze # Sequences_from_Fluint

Si potrebbe aggiungere un SequenceWaiter per il primo evento e controllare il secondo evento con l'AssertHandler finale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top