Я пытаюсь добавить функцию для отображения экрана загрузки в этом коде:
func connect(with code: String) {
interactor.connect(with: code)
.subscribe(onNext: { displaySuccessScreenRelay.accept(()) },
onError: { displayErrorScreenRelay.accept(()) } )
.disposed(by: disposeBag)
}
Я сделал реле поведения под названием loadingScreenShownRelay
объявление. Я знаю, что правильный способ сделать это, как this:
func connect(with code: String) {
loadingScreenShownRelay.accept(true)
interactor.connect(with: code)
.subscribe(onNext: {
displaySuccessScreenRelay.accept(())
loadingScreenShownRelay.accept(false)
},
onError: {
displayErrorScreenRelay.accept(())
loadingScreenShownRelay.accept(false)
})
.disposed(by: disposeBag)
}
Теперь вопрос заключается в том, как изменить порядок проверки, чтобы можно было проверить не только логи c, но и порядок showLoading -> success -> hideLoading?
Я могу, вероятно, протестировать дисплеи и загрузку наблюдаемых ScreenShown отдельно в 2 теста (ie. Один для проверки логики c из input-> emit display success / error
и еще один для проверки loadingScreenShown
). Но откуда мне знать, что заказ действительно был showLoading -> success -> hideLoading
? Если я выполняю тесты безотносительно к заказу, я также могу сделать это, и тесты будут по-прежнему go зелеными.
func connect(with code: String) {
loadingScreenShownRelay.accept(true)
loadingScreenShownRelay.accept(false)
interactor.connect(with: code)
.subscribe(onNext: { displaySuccessScreenRelay.accept(()) },
onError: { displayErrorScreenRelay.accept(()) } )
.disposed(by: disposeBag)
}
Заранее спасибо.