如何模拟传递给OCMock中的块的nil对象

时间:2016-09-05 13:13:22

标签: objective-c ocmock

存根类网络

的以下方法
- (void)userLogin:(NSDictionary *)credentials
completionHandler:(void (^)(BOOL, id, NSError *))handler;

我创建了一个这样的模拟:

id mock = OCMClassMock([Network class]);

我想保留此方法,以便使用参数 YES nil nil 调用块。如何使用 nil 来存储 NSError id 等对象的值?

1 个答案:

答案 0 :(得分:1)

你必须这样做:

id mock = OCMClassMock([Network class]);

OCMStub([mock userLogin:[OCMArg any]
    completionErrorHandler:([OCMArg invokeBlockWithArgs:OCMOCK_VALUE(YES), [NSNull null],
                                    [NSNull null], nil])]);