小编Tim*_*Tim的帖子

如何模拟 URLSession.DataTaskPublisher

我该如何嘲笑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

是否可以使用组合框架做同样的事情?

mocking ios swift urlsession combine

5
推荐指数
1
解决办法
3390
查看次数

标签 统计

combine ×1

ios ×1

mocking ×1

swift ×1

urlsession ×1