【发布时间】:2013-08-24 21:15:48
【问题描述】:
我想测试一个发出 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
}
【问题讨论】:
-
检查响应是否保存在 userdefault 中?这就是您可以识别数据已保存的地方。
-
我知道,但只有在调用连接委托并执行代码后才能对其进行测试。如何检查委托被调用?
-
抱歉,我无法理解您的情况。您想在保存响应之前或保存响应之后检查它吗??
-
显然在保存响应后。但我必须等到连接委托被调用。然后只有我可以测试。
-
显然。委托方法将数据保存在 userdefault 中,然后您需要在那里检查它。否则在调用该委托方法之前将没有数据。
标签: ios objective-c unit-testing ios6 nsurlconnectiondelegate