ios - 在 Swift 中使用 OHHTTPStubs 测试请求体

标签 ios swift ohhttpstubs

我正在尝试测试使用 OHHTTPStubs 捕获的发送请求正文,但返回时似乎有问题,因为 request.httpBodynil

我找到了有关此问题的信息 Testing for the request body in your stubs .但我是 iOS 开发的新手,不知道如何在 Swift 中访问 OHHTTPStubs_HTTPBody。我该怎么做?

最佳答案

我猜 Swift 中的粗略等效项如下:

import OHHTTPStubs.NSURLRequest_HTTPBodyTesting
...
stub(isMethodPOST() && testBody()) { _ in
  return OHHTTPStubsResponse(data: validLoginResponseData, statusCode:200, headers:nil)
}).name = "login"

public func testBody() -> OHHTTPStubsTestBlock {
  return { req in 
    let body = req.ohhttpStubs_HTTPBody()
    let bodyString = String.init(data: body, encoding: String.Encoding.utf8)

    return bodyString == "user=foo&password=bar"
  }
}

因此,更准确地说,您可以通过调用 OHHTTPStubsTestBlock 中的 ohhttpStubs_HTTPBody() 方法来访问 OHHTTPStubs_HTTPBody

关于ios - 在 Swift 中使用 OHHTTPStubs 测试请求体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44085214/

相关文章:

ios - 清除一个区域,以便后面的 View 显示出来

iphone - 根据状态修改 UIButtons 层

ios - 如何在 Objective-c ios 中抑制 PMD 重复?

java - 通过比较两个查询参数来匹配wiremock请求

ios - OHTTPS + AFNetworking 模拟失败响应

iphone - 无法让 OHHTTPStubs 与 NSURLSession 一起使用

ios - 通过 plist 的 TableView 部分

ios - 过滤选项卡栏 Controller 中的选项卡?

swift - 无法使用 String 类型的参数列表调用 max

swift - 如何在 Swift 中使用访问者模式减少样板文件?