RxTest

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

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"]))
    }