メソッドのパラメーターの 1 つが **error で、プロジェクトが ARC モードになっています。このメソッドのスタブを作成してモック メソッドを呼び出す場合、パラメーターを可能な値以下に設定します。コンパイル エラーが発生するか、モック メソッドを呼び出す引数の一致に失敗します。
- OCMOCK_ANY
- [OCMAg anyPointer]
- NSError オブジェクト エラーを作成し、[OCMArg setTo:error] と言いました。
何も機能しません。
そのようなメソッドをモックする方法は? ご意見をお聞かせください。
編集
-(id)init{
self = [super init];
if (self) {
id wcm = [OCMockObject partialMockForObject:self];
[[[wcm stub] andCall:@selector(mockGetWakeupCallsForRoomNumber:error:) onObject:self] getWakeupCallsForRoomNumber:OCMOCK_ANY error:((NSError __autoreleasing **) [OCMArg anyPointer])];
//[[[wcm stub] andCall:@selector(testMockMethod) onObject:self] testMethod];
}
return self;
}
-(void)testMethod
{
NSLog(@"Original");
}
-(void)testMockMethod
{
NSLog(@"Mock");
}
-(NSArray*)mockGetWakeupCallsForRoomNumber:(NSString*)roomNumber error:(NSError**)error
{
@throw @"Mock method called";
}
-(NSArray*)getWakeupCallsForRoomNumber:(NSString*)roomNumber error:(NSError**)error
{
}
testMockMethod のモックが機能します。