gpt4 book ai didi

objective-c - XCTestCase 通过异步操作设置一次

转载 作者:行者123 更新时间:2023-11-30 14:15:59 25 4
gpt4 key购买 nike

我正在尝试为使用 Web 服务 API 的 iOS 客户端编写一些单元测试。我想使用实际服务而不是模拟数据。

在运行所有测试之前,我需要获取一个 token 来对用户进行身份验证。我正在尝试使用类 setUp 方法来执行此操作 - 但我不确定如何等待 token 到达,然后再继续其余的测试(因为所有网络调用是异步的)。

最佳答案

您可以创建一个使用虚拟(内部没有验证)assync 测试等待 token 的函数,如下所示:

 func waitforToken(){
let dummyExpectation = expectationWithDescription("Expect to get my token")
... call web service

waitForExpectationsWithTimeout(20, handler: { error in
XCTAssertNil(error, "Error")
})
}
//on the web service Callback fulfill the expectation
func webServiceCallback(expectation:expectationWithDescription, ...) {
...
expectation.fulfill()
}

然后只需在每次测试开始时调用它即可。如果您在 setUp 内部调用,可能无法正常工作,但我可能是错的。

关于objective-c - XCTestCase 通过异步操作设置一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31163477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com