我的方法的参数之一是 **error 并且我的项目处于 ARC 模式。当为此方法编写存根以调用模拟方法时,我将参数设置为低于可能的值。它要么导致编译错误,要么无法匹配调用模拟方法的参数。
- OCMOCK_ANY
- [OCMArg 任意指针]
- 创建了一个 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 有效。