我正在使用OCMock测试以下方法:
- (void)methodToTest {
[self.someObject doFirstActionWithParam:@"aparam" completion:(void(^)(BOOL success)) {
if (success) {
[self.someObject doSecondActionWithParam:@"aparam" completion:(void(^)(BOOL success)) {
if (success) { [self doSomething]; }
}];
}
}];
}
我对self.someObject进行了部分模拟。
doFirstActionWithParam,我可以设置一个期望。我也覆盖了完成块(通过NSInvocation并调用YES完成)。
但是,我无法接受doSecondActionWithParam方法的调用。我还设置了doSomething方法的期望。这种情况永远不会发生。
有关测试嵌套完成块的方法的任何建议吗?
答案 0 :(得分:0)
模拟方法(存根或期望)时,由于嵌套级别应该没有区别。由于您没有包含测试代码,因此很难诊断问题。我的假设是永远不会调用传递给doFirstActionWithParam:completion:
的块,在这种情况下,doSecondActionWithParam:completion:
永远不会被调用。