例如:
@implementation MOOCMockDemo
+ (void)handleLoadFinished:(NSDictionary *)info {
MOPerson *person = [MOPerson personWithInfo:info];
if ([person isValid]) {
[self handleLoadSuccessWithPerson:person];
[self showError:NO];
} else {
[self handleLoadFailWithPerson:person];
[self showError:YES];
}
}
+ (void)handleLoadSuccessWithPerson:(MOPerson *)person {
// do something
}
+ (void)handleLoadFailWithPerson:(MOPerson *)person {
// do something
}
+ (void)showError:(BOOL)error {
// do something
}
@endNSDictionary *info = @{@"name": @"momo"};
id mock = OCMClassMock([MOOCMockDemo class]);OCMExpect([mock handleLoadSuccessWithPerson:[OCMArg any]]);// 预期不执行
OCMReject([mock handleLoadFailWithPerson:[OCMArg any]]);// 预期 + 参数验证
OCMExpect([mock handleLoadSuccessWithPerson:[OCMArg checkWithBlock:^BOOL(id obj) {
MOPerson *person = (MOPerson *)obj;
return [person.name isEqualToString:@"momo"];
}]]);// 预期下列方法顺序执行
[mock setExpectationOrderMatters:YES];
OCMExpect([mock handleLoadSuccessWithPerson:[OCMArg any]]);
OCMExpect([mock showError:NO]);OCMExpect([mock showError:YES]).ignoringNonObjectArgs; // 忽视参数[MOOCMockDemo handleLoadFinished:info];OCMVerifyAll(mock);可以延迟断言:
OCMVerifyAllWithDelay(mock, 1); // 支持延迟验证[mock stopMocking];