我有一个组件,在创建,调度两个事件来填充数据字段。因为它们对不同的动作在别处使用的事件应保持分开的。

我想要写的异步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第二事件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top