VCR 0.2.0

VCR 0.2.0

Aaron Sapp 维护。



VCR 0.2.0

VCR

Build Status Version Platform

示例

要运行示例项目,首先克隆仓库,并在Examples目录中首先运行pod install

要求

安装

VCR可以通过CocoaPods获取。要安装它,只需将以下行添加到您的Podfile中。

pod 'VCR'

为了保存磁带,您需要在方案中定义VCR_DIR。它应该指向您希望存储磁带的目录。我们通常使用这个

名称
VCR_DIR $(SOURCE_ROOT)/$(PROJECT_NAME)Tests/VCRTapes

使用说明

录制

let session = VCRSession()
session.insertTape("example", record: true)

将名为 example.json 的 json 文件放置到 VCR_DIR(上面定义)中。

多个请求

您可以通过插入额外的磁带来在给定的会话中录制多个请求。 VCRSession 将为每个插入的磁带写入一个 json 文件。

对于任何额外的请求,它将回退到实际的 URLSession 请求。

回放

let session = VCRSession()
session.insertTape("example")

这将读取 VCR_DIR 中的文件 example.json 并在发送请求时返回它。

依赖注入

VCRSessionURLSession 的一个实例,因此它可以注入到任何使用它的类中。例如,有一个 http 客户端

class HTTPClient {
    let session: URLSession

    init(session: URLSession = URLSession.shared) {
        self.session = session
    }

    func request(_ request: URLRequest, completion: @escaping (Bool) -> Void) {
        let task = self.session.dataTask(with: request) { (data, response, error) in
            completion(true)
        }

        task.resume()
    }
}

您可以将 VCRSession 注入默认的

let session = VCRSession()
session.insertTape("example")
let client = HTTPClient(session: session)

作者

Aaron Sapp,[email protected]

许可证

VCR的可获得许可为MIT许可证。更多信息请参见LICENSE文件。