1

作成時に、データフィールドにデータを入力するために2つのイベントをディスパッチするコンポーネントがあります。イベントは別の場所で個別のアクションに使用されるため、個別のままにしておく必要があります。

これらのイベントが両方とも送信されることを確認するために、非同期フレックスユニットテストを作成したいと思います。問題は、どちらも同じイベントのバリアントであるということです。

コードは次のとおりです。

成分:

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();
}

重要なのは、これは最初のget dataイベントがディスパッチされることをテストするだけであり、さらに悪いことに、イベントディスパッチの順序に依存します。これらのイベントの両方が、順序に関係なく、最終的にこのメソッドによって送信されることをテストするにはどうすればよいですか?

4

1 に答える 1

1

シーケンスを確認してください:http ://docs.flexunit.org/index.php?title = Sequences#Sequences_from_Fluint

最初のイベントにSequenceWaiterを追加し、最後のAssertHandlerで2番目のイベントを確認できます。

于 2010-08-09T14:42:37.497 に答える