我想用以下消息声明模拟一个对象:
- (void)createWithCompletion:(void (^)(FuseResult *result, NSError *err)) completion;
是否可以模拟此消息必须处理的块调用?
我读了有块的ArgumentCaptorTest,但我不确定它是否相关。
我想用以下消息声明模拟一个对象:
- (void)createWithCompletion:(void (^)(FuseResult *result, NSError *err)) completion;
是否可以模拟此消息必须处理的块调用?
我读了有块的ArgumentCaptorTest,但我不确定它是否相关。
向下滚动到https://github.com/jonreid/OCMockito的底部,您将看到“Capturing arguments for further assertions”。第二个例子展示了如何使用MKTArgumentCaptor
捕获一个块参数,然后调用它。
这是一个例子:
MKTArgumentCaptor *argument = [[MKTArgumentCaptor alloc] init];
[verify(mockObject) createWithCompletion:[argument capture]];
void (^completion)(FuseResult *result, NSError *err) = [argument value];
completion(someResult, someErr);
这不会mockObject
以任何方式调用块。相反,它捕获传递给mockObject
. 最后一步是使用测试所需的任何参数调用捕获的块。