문제

생성시 데이터 필드를 채우기 위해 두 가지 이벤트를 파견하는 구성 요소가 있습니다. 이벤트는 뚜렷한 조치를 위해 다른 곳에서 사용되기 때문에 별도의 상태로 유지되어야합니다.

이러한 이벤트가 모두 전송되었음을 확인하기 위해 비동기 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();
}

문제는,이 테스트는 첫 번째 GET 데이터 이벤트가 발송되고 더 나쁜 것은 이벤트 파견 순서에 따라 다릅니다. 주문에 관계 없이이 두 이벤트 모두이 방법에 의해 결국 발송된다는 것을 어떻게 테스트 할 수 있습니까?

도움이 되었습니까?

해결책

시퀀스 확인 : http://docs.flexunit.org/index.php?title=sequences#equences_from_fluint

첫 번째 이벤트에 SequenceWaiter를 추가하고 Final Asserthandler로 두 번째 이벤트를 확인할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top