0

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

我使用 ASIHTTPRequest 从服务器获取数据。我如何检查我的请求

- (void)testSignIn {

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

}

在这里我有一个问题。如果在这种方法中我将在收到响应之前插入 STFail,它每次都会以错误完成(因为检索数据需要一些时间,这不是同步请求)

如何解决这个问题?

4

1 回答 1

1

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

GHUnit 示例

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

严格来说,单元测试应该测试一个没有进入网络来检索数据的代码单元。

如果可能,重组您的测试以提供将测试您的功能的静态测试数据。您希望您的测试尽可能可靠和一致。通过引入网络,您将自己设置为不一致的测试(当网络关闭或变慢时),这可能导致您的测试被禁用(假设您在团队中工作)

于 2012-07-29T20:41:26.100 回答