0

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 
} 
+0

응답이 userdefault에 저장되어 있는지 확인하십시오. 데이터가 저장되었음을 확인할 수있는 곳입니다. –

+0

연결 권한이 호출되고 코드가 실행 된 후에 만 ​​테스트 할 수 있음을 알고 있습니다. 대리인이 호출되었는지 어떻게 확인합니까? – Geek

+0

죄송 합니다만 귀하의 시나리오를 이해할 수 없습니다. 응답을 저장하기 전에 또는 응답을 저장 한 후에 확인하고 싶습니까? –

답변

0

있는 NSURLConnection 클래스는 HTTP 응답 코드는 매우 성공적인 응답으로 404을 취급 돌아가 자신의 방법이없는 - 나는 그것이 가정하는 연결이 이루어지면서 뭔가 (404 페이지)가 반환되었습니다.

응답이 200 OK 또는 404 NOT FOUND인지 확인하는 트릭은 NSURLResponse를 NSHTTPURLResponse로 캐스팅 한 다음 해당 클래스 메소드를 사용하여 http 응답 코드를 찾는 것입니다.

참고 : 연결이 이루어지면 위임자가 분명히 호출됩니다. 연결이되지 않았는지 확인한 다음해야 할 일을 확인해야합니다.

+0

위임 메서드에서 일부 코드가 있고 테스트하고 싶습니다. 그 코드. 그래서 일단 delegate가 호출되고 코드가 실행되면 테스트 할 수 있습니다. – Geek

+0

네, 맞습니다. –

+0

그렇다면 어떻게해야할까요? 대의원이 호출 될 때까지 기다리는 것을 의미합니까? – Geek

관련 문제