Hey there,
I tried to convert the test_whenAccountAvailable_updatesAccountStatus() test to a version using RxBlocking but I’m stuck.
My current code looks like this:
func test_whenAccountAvailable_updatesAccountStatus() {
let accountSubject = PublishSubject<TwitterAccount.AccountStatus>()
let viewModel = createViewModel(accountSubject.asDriver(onErrorJustReturn: .unavailable))
let loggedInObservable = viewModel.loggedIn.asObservable().subscribeOn(scheduler)
accountSubject.onNext(.authorized(TestData.account))
accountSubject.onNext(.unavailable)
accountSubject.onCompleted()
XCTAssertEqual(try! loggedInObservable.toBlocking().toArray(), [true, false])
}
I get the error that [] doesn’t equal [true, false]. It seems to me that the assert starts after the subject is already completed. If I use ‘DispatchQueue.main.asyncAfter’ with a delay of 0.01 the code works, but this can’t be the right solution. Could someone explain me what I’m doing wrong?