【问题标题】:OCMock - Mocking nested blocksOCMock - 模拟嵌套块
【发布时间】:2016-04-02 16:14:08
【问题描述】:

我正在使用 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 方法设置了期望。这永远不会发生。

对测试嵌套完成块的方法有什么建议吗?

【问题讨论】:

    标签: xcode macos unit-testing xctest ocmock


    【解决方案1】:

    当您模拟一个方法(存根或期望)时,由于嵌套级别不应该有差异。由于您没有包含测试代码,因此很难诊断问题。我的假设是传递给doFirstActionWithParam:completion: 的块永远不会被调用,在这种情况下doSecondActionWithParam:completion: 也永远不会被调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多