Swift 2.x (最新) を使用しており、コードを BDD (単体テスト) したいと考えています。余談ですが、RxSwiftも使用しています。オーバーライドされたメソッドは、カスタム テスト スタブでは呼び出されません。私たちのコード:
protocol SomethingDeliverable {
func fetchSomething(somethingId: String, associatedList: String) -> Observable<String>
}
extension SomethingDeliverable {
func fetchSomething(somethingId: String, associatedList: String) -> Observable<String> {
return create { observer in
return NopDisposable.instance
}
}
}
テストのために、次のテスト コードがあります。
private class StubSomethingApi: SomethingDeliverable {
var responseClosure: ((AnyObserver<String>) -> Void)?
func fetchSomething(somethingId: String, associatedList: String) -> Observable<String> {
return create { observer in
if let responseClosure = self.responseClosure {
responseClosure(observer)
}
return NopDisposable.instance
}
}
}
Observable< String > を返す fetchSomething の代わりに、Observable< T > を返し、テストのために StubSomethingAPI がそれを正常にオーバーライドするようにしたいと考えています。どうすればそれができますか?