Domanda

Per qualche ragione, aggiungiAsync concatenamento in un test flexunit come descritto in questo articolo non funziona assolutamente quando provo a farlo.

public function testWhatever():void {
    var cont:EventDispatcher = new EventDispatcher();
    cont.addEventListener("continue", addAsync(verifyFirst, 1000));
    cont.dispatchEvent(new Event("continue"));
}

private function verifyFirst(e:Event):void {
    var cont:EventDispatcher = new EventDispatcher();
    cont.addEventListener("continue", addAsync(verifySecond, 1000));
    cont.dispatchEvent(new Event("continue"));
}

private function verifySecond(e:Event):void {
    assertTrue(true);
}

Se eseguo questo test, viene chiamato confirmFirst ma verifichi SecondSecond. Suppongo che questo sia un bug in flexunit ... c'è una soluzione?

È stato utile?

Soluzione

Ho fatto qualche ricerca in più e ho scoperto che questo è davvero un bug in flexunit, che sembra essere risolto nella prossima versione. La soluzione alternativa che ho trovato è stata invece utilizzare Application.application.callLater per inviare il secondo evento.

private function verifyFirst(e:Event):void {
    var cont:EventDispatcher = new EventDispatcher();
    cont.addEventListener("continue", addAsync(verifySecond, 1000));
    Application.application.callLater(cont.dispatchEvent,
       [new Event("continue")]);
}

Questa domanda è stata ispirata da un tentativo di ispezionare lo stato di un oggetto dopo che tutto nella coda degli eventi di Flash è stato elaborato. Ho scoperto un modo più semplice per ottenere questo risultato senza fare confusione con EventDispatcher s.

Effettua la seguente chiamata alla fine della prima parte del test quando desideri che la coda degli eventi venga elaborata.

Application.application.callLater (addAsync (phaseTwo, 1000, [ args ... ]), [null]);

Con la funzione phaseTwo con la seguente firma.

fase di funzione privata Due (e: Event, args: Array): void

e verrà passato un oggetto null . Questo è necessario per essere compatibile con addAsync .

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