我在Flex应用程序中测试了一些事件调度代码,使用FlexUnit的addAsync
方法来测试事件是否被调度。目前为止,我可以确保至少有一个事件被解雇。但是,我想要更详细一些;我希望确保我所期待的一系列事件得到调度。有没有一个有用的测试模式(或者,甚至是不同的测试框架 - 我很灵活!)来完成这个任务?Flex,Flexunit:如何测试事件分派两次?
我试过这个代码,但它似乎并没有被调用第二次:
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);
}
你几乎可以肯定获得通过ASMock(http://asmock.sourceforge.net/)嘲笑无论是在制作的requiredQuestion来电asynchrous摆脱addAsync的。一旦你摆脱了addAsync,一切都将同步运行。如果还没有答案,会在明天上午(英国)提出。 J – 2009-07-22 20:22:37