异步等待失败 swift API 请求

Posted

技术标签:

【中文标题】异步等待失败 swift API 请求【英文标题】:Asynchronous wait failed swift API Request 【发布时间】:2016-01-09 07:28:21 【问题描述】:

我创建了一个单元测试用例来测试我处理 API 请求的功能。

下面我提到了XC测试用例代码

var expectation:XCTestExpectation?

func testRequestFunction () 

    expectation = self.expectationWithDescription("asynchronous request")

    let test = HVRequest.init(subdomain: "staging", token: "jijfio88fhu0387fh", type: .GET, command: "estm") 
        (success) -> Void in

        
    test.request()

    self.waitForExpectationsWithTimeout(30, handler: nil)


当我运行这个测试用例时,它给出了一个错误

异步等待失败:超过 30 秒的超时,未实现预期:“异步请求”。

它如何显示带有错误的响应 JSON 对象。

请帮我解决问题

【问题讨论】:

【参考方案1】:

XCTestExpectation 正在等待。当你收到回复时,你必须fulfill(意思是:用expectation说我收到了回复,继续)。

    let test = HVRequest.init(subdomain: "staging", token: "jijfio88fhu0387fh", type: .GET, command: "estm") 
        (success) -> Void in
            expectation.fulfill() // add this line
        
    test.request()

【讨论】:

@anthu 我已经添加了你推荐的。之后它说“超过 30 秒的超时,没有实现预期” @DimuthLasantha 您应该添加一个断点,并查看 fulfill 行是否被调用。如果没有,你应该编码,例如:HVRequest

以上是关于异步等待失败 swift API 请求的主要内容,如果未能解决你的问题,请参考以下文章

同步 API 请求到异步 API 请求 Swift 2.2

ASIHTTPRequest取消异步请求

Heimdall Swift 验证每个请求失败

在 swift 中使用 Alamofire 的 Json 请求失败

XCUI 测试因异步等待失败而失败:超过 30 秒的超时,未达到预期

使用 django API 和 Alamofire 请求失败