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을 지정해준다.
이를 이용해서 비동기 테스트를 진행할 수 있다.
반응형