2016-12-28 7 views
0

戻り値の型としてpmkpromiseと方法を模擬する方法:IOS - 私はユニットテストしたい私はメソッドを持って

- (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方法を模擬し、1つのユニットテストや他のユニットテストのためにいわゆる「キャッチ」ブロックのためのいわゆる「し、」ブロックを作る方法です。ここで

[更新] が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)私はすぐにどこ 'その後、()'定義されて見ることができません。私はそれがブロックを返すプロパティだと仮定しますが、私はタイプが正確であるかを見る必要があるだろう。あなたの応答エリックのため –

+0

感謝。私は自分の質問を更新し、getInfoメソッドを追加しました。 – user3158704

+0

何を試しましたか?テストケースはどのように見えますか? –

答えて

1

、あなたはgetInfoと共有AMKServicesClient間の依存関係を壊すためにどちらか持っている、またはあなたを可能にするシステムのいくつかの並べ替えを設定します[AMKServicesClient sharedInstance]が呼び出されたときにモックサービスクライアントをロードします。

関連する問題