【发布时间】:2017-03-15 15:43:16
【问题描述】:
我在测试我的视图时遇到了这个问题:
在我的 ViewModel 中,我调用了一个异步操作,当响应到达时,我使用 PublishSubject 在我的视图中产生变化。在我的视图中,我调用DispatchQueue.main.async 以隐藏或显示按钮。
视图模型
let refreshButtons = PublishSubject<Bool>(true)
refreshButtons.onNext(true)
查看
model.refreshButtons.asObservable()
.subscribe(onNext: {
[unowned self] success in
self.updateButtons(success)
})
.addDisposableTo(disposable)
private func updateButtons(_ show:Bool) {
DispatchQueue.main.async{
button.isHidden = !show
}
}
现在我不知道如何对refreshButtons.onNext(true) 将隐藏或显示我的按钮进行单元测试。
我能想到的解决办法是:
- 覆盖该方法并具有异步期望,但为此我需要公开该方法,我不想要什么,或者
- 在我的 ViewModel 中而不是在视图中调度主队列,这对我来说听起来很奇怪,但我可能没问题。
我该如何解决这个问题? 提前谢谢你。
【问题讨论】:
标签: swift unit-testing mvvm rx-swift