单元测试NSURLConnectionDelegate方法
问题描述:
我想测试一个使URL请求的方法。在NSURLConnectionDelegate
方法收到回应时,我保存回应。我真正想测试的逻辑是响应是否已保存。单元测试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
}
答
的NSURLConnection的类没有任何自己的方法来返回HTTP响应代码,以便把404作为一个成功的响应 - 我想这是作为连接,并返回了一些内容(404页面)。
查看响应是否为200 OK或404 NOT FOUND的技巧是将NSURLResponse强制转换为NSHTTPURLResponse,然后使用该类方法查找http响应代码。
注意:如果建立了连接,委托将被确定地调用。你应该检查一下是否没有连接,然后你应该做什么。
检查响应是否保存在userdefault中?那就是你可以识别数据被保存的地方。 –
我知道,但只有在连接委托被调用并且代码被执行后,我才能测试它。我如何检查该代表是否被调用? – Geek
抱歉,但我不明白你的情况。你想在保存响应之前或保存响应之后检查它? –