RxTest
- Observable에 시간 개념 주입
- 구독 없이도 검증이 가능
func testExample() throws {
let scheduler = TestScheduler(initialClock: 0)
//let coldObservalbe = scheduler.createColdObservable([.next(1, "A"), .next(2, "B"), .next(3, "C")])
let hotObservable = scheduler.createHotObservable([.next(1,"A"), .next(2, "B"), .next(3, "C")])
let observer = scheduler.createObserver(String.self)
hotObservable.subscribe(observer).disposed(by: bag)
scheduler.start()
expect(observer.events).to(equal([.next(1,"A"),.next(2,"B"), .next(3,"C")]))
}
RxBlocking
- Observable의 Event방출 검증
- 특정 시간동안 방출된 이벤트 검증
func testExample() throws {
//Observable -> BlokingObservable (옵저버블이 컴플리트 되지않아도 타임아웃설정가능함)
let obervable = Observable.of("1","2","3").toBlocking(timeout: 2)
//Observable의 .next 이벤트를 Array로 전환
let values = try! obervable.toArray()
//Nimble의 문법을 활용한
expect(values).to(equal(["A","B","C"]))
}