我在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