如何测试在FlexUnit 4中的事件序列?
-
19-09-2019 - |
题
我有一个组件,在创建,调度两个事件来填充数据字段。因为它们对不同的动作在别处使用的事件应保持分开的。
我想要写的异步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();
}
关键是,第一获取数据事件调度,更糟的是这只是测试,取决于事件调度的顺序。如何测试,这两个事件都最终通过这种方法发送出去,不管他们的订单?
解决方案
查核序列: http://docs.flexunit.org/index .PHP?标题=序列#Sequences_from_Fluint
您可以添加一个SequenceWaiter对于所述第一事件,并检查与最终AssertHandler第二事件。
不隶属于 StackOverflow