私はテストしたいメソッドの1つの中にブロックをモックするのに苦労しています。以下はメソッドのブロックをスタブするOCMock
は私のコードは、今私はtestStartFetchingのような試験方法を持っていると私は、このメソッドをテストしたい
- (void) startFetching:(MyParameter *) parameter
{
self.fetcher = [[MyFetcher alloc] initWithContext:xxxx andObserver:nil];
self.fetcher.parameters = @[parameter];
[self.fetcher startWithCompleteionBlock:^(id<MyOperation> _Nonnull operation) {
if(operation.errors.count > 0) {
[self.delegate failedWithError:operation.errors.firstObject];
} else{
FetcherResponse *response = [MyFetcherResponse cast:operation];
NSArray *array = response.responseArray;
if(array.count == 1) {
[self.delegate completedWithSuccess:array.firstObject];
}
}
}];
}
のように見え、多かれ少なかれ方法です。私はどのように私はこの部分をスタブすることができないのですか?[self.fetcher startWithCompleteionBlock:^(id<MyOperation> _Nonnull operation)
私の方法の中で、成功した場合は適切な配列を返し、エラーの場合はエラーを返し、エラーの場合はスタブするとfailedWithError:operation
が呼び出され、そうでなければcompletedWithSuccess
が呼び出されます。
私は客観的なcでOCMockフレームワークを使用しています。私は単体テストに新しいです。どんな助力も高く評価されます。
ありがとうございました。このsomeAperationとは何ですか?そして、通過ブロック(someOperation)は何をするのか、それは何を呼びますか? – Madu
@マドゥ私はもっとはっきりと説明しようとしました。まだ不明な点がある場合は教えてください。 –
ありがとうございました。それは私をたくさん助けました。 – Madu