[NSManagedObjectContext save:]
など、引数にポインタのポインタを渡してメソッド側で結果をセットする場合に Kiwi のスタブで任意の値をセットする方法がわからなかったのでやってみた。
NSManagedObjectContext
の save:
を対象とした場合以下のようにする。
NSManagedObjectContext *context = xxx;
[context stub:@selector(save:) withBlock:^id(NSArray *params) {
NSValue *errorValue = params[0];
NSError *__autoreleasing *error = (NSError *__autoreleasing *)[errorValue pointerValue];
*error = [NSError errorWithDomain:@"test" code:1234 userInfo:nil];
return @NO;
}];
sutb:withBlock:
を使えばブロックでスタブ処理を書けるので受け取った NSError **
に任意の値を設定することができる。