gpt4 book ai didi

ios - 在 Xcode 中测试异步方法

转载 作者:行者123 更新时间:2023-11-29 04:31:18 25 4
gpt4 key购买 nike

我使用单元测试。我还使用异步请求从服务器检索数据。我的问题是如何测试这个请求,因为现在我的测试无需等待检索数据即可工作。

我使用 ASIHTTPRequest 从服务器获取数据。这是我检查我的请求的方法

- (void)testSignIn {

self.request = [[Requests alloc] init];
[self.request signInWithEmail:@"some.email@gmail.com" andPassword:@"123456"];

}

这里我遇到一个问题。如果在此方法中我将在收到响应之前插入 STFail,则每次都会出现错误(因为检索数据将花费一些时间,并且这不是同步请求)

如何解决这个问题?

最佳答案

如果您确实想在单元测试中测试网络代码:切换到使用 GHUnit,它实际上包含对等待异步事件的支持。

GHUnit Examples

但实际上,你不应该这样做。在上面的测试中,你在测试什么?您的后端服务还是您的 Requests 类?

严格来说,单元测试应该测试未通过网络检索数据的代码单元。

如果可能,请重构您的测试以提供用于测试您的功能的静态测试数据。您希望您的测试尽可能可靠和一致。通过引入网络,您正在为自己设置不一致的测试(当网络出现故障或速度缓慢时),这可能会导致您的测试被禁用(假设您在团队中工作)

关于ios - 在 Xcode 中测试异步方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11712456/

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