ocmock 的 invokeBlockWithArgs 使用 nil 参数

标签 ocmock

考虑到 invokeBlockWithArgs: 要求参数以 nil 结尾,有什么方法可以调用以 nil 作为给定参数的 block 吗?

模拟对象中的示例方法定义:

- (void)methodWithCompletion:(void(^)(NSString*, NSError* )) completionBlock;

给定的模拟对象应该调用:

completionBlock(@"foo", nil);

但是,使用invokeBlockWithArgs:

OCMStub([mockObj methodWithCompletion:([OCMArg invokeBlockWithArgs:@"foo", nil, nil])]);

方法失败,参数太少;显然,以 nil 为终止符,它无法识别 block 的第二个参数应该是 nil

最佳答案

我还没有测试过它,但理论上传递 [NSNull null] 应该可以。

关于ocmock 的 invokeBlockWithArgs 使用 nil 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38731170/

相关文章:

ios - OCMock 3 不匹配字符串参数

iphone - 我怎样才能让 OCMock 让我在 UIKit 类上 stub 一个类别方法?

ios - OCMClassMock 和 OCMStrictClassMock

ios - 延迟的 OCMock 验证/处理单元测试中的超时

ios - OCMock - 部分模拟 [UIAlertView alloc]

ios - OCMock ios7中“NICE”,“PARTIAL”和“MOCK”之间的区别

ios - OCMock 设置模拟类,其属性并获得基本了解

ios - 返回 OCMock 中的原始值

iphone - 如何在 iPhone 中对这个 hitTest 覆盖进行单元测试?

c - XCTest 的自动 C/C++ 模拟生成 - CMock/OCMock?