我有一个组件,在创建时,会调度两个事件来填充数据字段。这些事件应该保持独立,因为它们被用于其他地方以进行不同的行动。
我想写一个异步flexunit测试来确认这些事件都已发送。问题是,它们都是同一事件的变种。
以下是代码:
组件:
internal function creationComplete(): void {
new GetDataEvent(GetDataEvent.GET_DATA, "aField").dispatch();
new GetDataEvent(GetDataEvent.GET_DATA, "anotherField").dispatch();
}
测试(据我所知):
[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();
}
问题是,这只测试第一次获取数据事件的调度,更糟糕的是,取决于事件调度的顺序。如何测试这两个事件最终都是通过此方法发送的,无论它们的顺序如何?
答案 0 :(得分:1)
查看序列:http://docs.flexunit.org/index.php?title=Sequences#Sequences_from_Fluint
您可以为第一个事件添加SequenceWaiter,并使用最终的AssertHandler检查第二个事件。