Rx

[RxTest] XCTExpectation

코르피 2023. 4. 6. 18:36
반응형

XCTExpectation

비동기 테스트에 사용되는 Xcode의 XCTest 프레임워크에서 제공하는 클래스이다.

테스트를 계속하기 전에 기대치가 충족될 때까지 기다릴 수 있다.

 

사용 예시

let expectation = XCTestExpectation(description: "timer completed")

timeObservable.subscribe(onNext: { time in
    resultValues.append(time.totalSecond)
    if time.totalSecond == 0 {
        expectation.fulfill()
    }
}).disposed(by: disposeBag)

// Start the timer
self.timerStartUseCase.modeStart()

wait(for: [expectation], timeout: 4)

 

expectation을 생성하고 간단한 description을 작성해주었다.

 

timeObservable은 타이머 0.1초 마다 값을 Emit 해주도록 작성해 두었는데

받은 time의 totalSecond 의 값이 0이면 fulfill 하도록 했다.

 

이후 modeStart() 메서드로 타이머를 실행하고

wait 메서드로 fulfill을 기다린다. 혹시나 영원히 기다릴 수 있으므로 timeout을 지정해준다.

 

이를 이용해서 비동기 테스트를 진행할 수 있다.

 

 

반응형