Je teste un code d'expédition d'événement dans une application Flex, en utilisant la méthode addAsync
de FlexUnit pour tester que les événements sont distribués. Génial jusqu'ici, je peux m'assurer qu'au moins un événement a été déclenché. Cependant, je veux être un peu plus détaillé. Je veux m'assurer que l'ensemble des événements auxquels je m'attends est exactement distribué. Existe-t-il un modèle de test utile (ou même un cadre de test différent - je suis flexible!) Pour y parvenir?Flex, Flexunit: Comment tester qu'un événement est envoyé deux fois?
J'ai essayé ce code, mais il ne semble pas s'invoquer la deuxième fois:
protected function expectResultPropertyChange(event: Event, numberOfEvents: int = 1): void {
trace("Got event " + event + " on " + event.target + " with " + numberOfEvents + " traces left...");
assertTrue(event.type == ResponseChangedEvent.RESPONSE_CHANGED);
if (numberOfEvents > 1) {
event.target.addEventListener(ResponseChangedEvent.RESPONSE_CHANGED, addAsync(expectResultPropertyChange, 1000, numberOfEvents - 1));
}
}
public function testSomething(): void {
requiredQuestion.addEventListener(ResponseChangedEvent.RESPONSE_CHANGED, addAsync(expectResultPropertyChange, 1000, 2));
requiredQuestion.responseSelected("1", true);
requiredQuestion.responseSelected("2", true);
}
Vous pouvez presque certainement se débarrasser de l'addAsync en utilisant ASMock (http://asmock.sourceforge.net/) pour se moquer de tout ce qui est fait les appels asynchrous à requiredQuestion. Une fois que vous vous débarrasserez de l'addAsync, tout fonctionnera de manière synchrone. Va arriver avec un exemple demain matin (Royaume-Uni) s'il n'y a toujours pas de réponse. J –