我是OCMock的新手,我正计划嘲笑请求电话。需要模拟的API按以下定义执行。
[ProductRequest requestProductUpdateUrl: @"testUrl" withParameters:params error:^(NSString *updateUrl, NSError *error){
if (!error && [updateUrl length] !=0 ) {
NSLog(@"Success");
} else {
NSLog(@"Error");
}
}];
关于如何使用OCMock模拟方法requestProductUpdateUrl
的任何想法?
答案 0 :(得分:0)
此功能尚未实现,但我认为他们正在努力。我也必须做这样的事情:
semaphore = dispatch_semaphore_create(0);
[myObject myFunctionWithCallback:^(BOOL success){
if(success)
dispatch_semaphore_signal(semaphore);
else
STFail(@"Call failed"); dispatch_semaphore_signal(semaphore);
}];
[self waitForSemaphore];
等待函数是这样的:
- (void)waitForSemaphore;
{
float step_duration = .1;
float wait_steps = 2 / step_duration;
while (dispatch_semaphore_wait(semaphore, dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC / 10)) && wait_steps > 0){
CFRunLoopRunInMode(kCFRunLoopDefaultMode,step_duration, YES);
wait_steps--;
}
if (wait_steps <= 0) {
STFail(@"Timeout!");
}
}