我该如何嘲笑URLSession.DataTaskPublisher?我有一堂课Proxy需要注入URLSessionProtocol
protocol URLSessionProtocol {
func loadData(from url: URL) -> URLSession.DataTaskPublisher
}
Run Code Online (Sandbox Code Playgroud)
class Proxy {
private let urlSession: URLSessionProtocol
init(urlSession: URLSessionProtocol) {
self.urlSession = urlSession
}
func get(url: URL) -> AnyPublisher<Data, ProxyError> {
// Using urlSession.loadData(from: url)
}
}
Run Code Online (Sandbox Code Playgroud)
URLSession该代码最初与完成处理程序的传统版本一起使用。它非常完美,因为我可以轻松地模拟URLSession测试,就像 Sundell 的解决方案:Mocking in Swift。
是否可以使用组合框架做同样的事情?