【发布时间】:2016-12-12 11:25:00
【问题描述】:
假设我有一个带有 harvest 函数的 Field 类,如下所示:
class Field {
func harvest(handler: (Vegetable) -> Void) {
…
handler(carrot)
…
handler(potato)
…
handler(carrot)
…
}
}
我也有一个 Reactive 版本/API 用于相同的功能:
import RxSwift
extension Reactive where Base: Field {
func harvest() -> Observable<Vegetable> {
return Observable.create { observer in
self.base.harvest(handler: observer.onNext)
return Disposables.create()
}
}
}
出于测试目的,我创建了一个名为MockField 的Field 子类,它覆盖harvest(:) 以使用一组存根Vegetables 调用处理程序。当使用像field.harvest(:) 这样的MockField 对象时,一切正常,我得到了蔬菜残茬。
现在我想对field.rx.harvest 的存根调用的响应式扩展做同样的事情,但我不能覆盖它来返回存根蔬菜! 如何覆盖rx 命名空间中的函数?
【问题讨论】:
标签: ios swift testing stub rx-swift