2016-12-28 9 views
0

반환 형식으로 pmkpromise와 방법을 조롱하는 방법 :IOS - I는 단위 테스트하려는 내가 방법을

- (void)fetchInfo { 
[AMKAccountService getInfo] 
.then(^(AMKInfoResponse *response) { 

    if (response.accounts.count > 0) { 
     _viewModel = [[AMKInfoViewModel alloc] initWithInfoResponse:response]; 
     [self.view setAsOfDate:_viewModel.asOfDate]; 
    } else { 
     [self.view showError:[AMKStrings feedbackForCode:@"testError"]]; 
    } 
}).catch(^(NSError *error) { 
    DLog(@"Error getting info: %@", error); 
    [self.view showError:[AMKStrings feedbackForCode:@"testError"]]; 

}); 

}이 방법에서는

'된 getInfo'방법은 서비스 호출을 PMKPromise 객체 유형의 응답을 반환합니다.

제 질문은 getInfo 메소드를 조롱하고 한 유닛 테스트를 호출하는 'then'블록을 만들고 다른 유닛 테스트를 호출하는 'catch'블록을 호출하는 방법입니다.

[업데이트] 여기 된 getInfo 방법입니다 :

+ (PMKPromise *)getInfo { 
AMKServicesClient *client = [AMKServicesClient sharedInstance]; 

return [client GET:@"/amk-web-services/rest/info" parameters:nil].thenInBackground(^(NSDictionary *responseDictionary) { 

    return [[AMKInfoResponse alloc] initWithResponse:responseDictionary]; 
}); 

} 
+0

'getInfo' 메소드의 정의를 제공 할 수 있습니까? 간단히 PromiseKit을 살펴 보았고 (https://github.com/mxcl/PromiseKit/search?utf8=%E2%9C%93&q=PMKPromise)'then()'이 정의 된 곳을 바로 볼 수 없습니다. . 블록을 반환하는 속성이라고 가정하지만 유형이 정확히 무엇인지 확인해야합니다. –

+0

Erik에게 답변 해 주셔서 감사합니다. 내 질문을 업데이트하고 getInfo 메서드를 추가했습니다. – user3158704

+0

무엇을 시도 했습니까? 테스트 케이스는 어떻게 생겼습니까? –

답변

1

, 또는 수 시스템의 일종을 설정 getInfo 및 공유 AMKServicesClient 사이의 의존성을 중단하는 중, 당신이해야합니다 이것을 테스트하기 위해, [AMKServicesClient sharedInstance]이 호출되면 모의 서비스 클라이언트를로드합니다.