使用OCMock模拟块期望

时间:2012-10-11 11:08:36

标签: objective-c ios ocmock

我是OCMock的新手,我正计划嘲笑请求电话。需要模拟的API按以下定义执行。

   [ProductRequest requestProductUpdateUrl: @"testUrl" withParameters:params   error:^(NSString *updateUrl, NSError *error){
        if (!error && [updateUrl length] !=0 ) {
           NSLog(@"Success");
        } else {
             NSLog(@"Error");
        }
   }];

关于如何使用OCMock模拟方法requestProductUpdateUrl的任何想法?

1 个答案:

答案 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!");
}

}