0

我想测试一种发出 URL 请求的方法。在NSURLConnectionDelegate方法中收到响应时,我保存响应。我真正想测试的逻辑是响应是否被保存。

如何测试NSURLConnectionDelegate方法?

我想测试的方法:

- (void) getProfilePictureURL :(NSString *)fbId
{
    //to get picture URL
    NSString *urlString = [NSString stringWithFormat:@"https://graph.facebook.com/%@/picture?type=large", fbId];
    NSURL *url = [NSURL URLWithString:urlString];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];

    if (!connection)
    {
        NSLog(@"error while starting the connection");
    }
} 

// NSURLConnectionDelegate method
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    // Save response in user defaults
}
4

1 回答 1

0

NSURLConnection 类没有任何自己的方法来返回 http 响应代码,因此将 404 视为成功响应 - 我认为这是建立了连接并返回了某些内容(404 页面)。

查看响应是 200 OK 还是 404 NOT FOUND 的技巧是将 NSURLResponse 转换为 NSHTTPURLResponse 然后使用该类方法来查找 http 响应代码。

注意:如果建立了连接,肯定会调用委托。您应该只检查是否没有建立连接,然后您应该做什么。

于 2013-08-22T10:13:41.693 回答