ios - 使用 OCMock 时捕获传递到方法中的 block

标签 ios objective-c objective-c-blocks ocmock

我正在寻找一个传递给模拟对象的 block 。这是被模拟的类的具体功能:

[self.imageFetcher fetchImageWithURL:url success:^(NSURL *successUrl, UIImage *image) {
       //Implementation Details here
}];

这是我 try catch 该 block 的尝试:

OCMExpect([imageFetcher fetchImageWithURL:urlForSuccess success:[OCMArg checkWithBlock:^(void(^myBlock)(NSURL *,UIImage *)){
        myBlock(urlForSuccess,[UIImage new]);
        return YES;
    }]]);

但是,这似乎不起作用。如何使用 checkWithBlock 捕获 block 并能够使用我选择的参数调用该 block ?

最佳答案

如果您想调用传递给模拟的 block ,那么您应该使用[OCMArg invokeBlock]。有关详细信息,请参阅文档中的第 2.6 节:http://ocmock.org/reference/#stubing-methods

关于ios - 使用 OCMock 时捕获传递到方法中的 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45844900/

相关文章:

ios - 对象没有保存到 SQL Lite 中,即使它说它已保存 [RestKit ManagedObjectContext]

objective-c - 来自同一文件的不同 md5 总和

Objective-C 快速枚举冒泡排序

Objective-C block ,递归失败

ios - 从 MDM 安装后企业应用程序崩溃

ios - 为什么此 Objective C 代码会因 EXC_BAD_ACCESS code=1 而崩溃? (使用 block 语法和字典)

ios - 类型 'AnyObject' 不符合协议(protocol) 'Hashable'

ios - 表不改变

iphone - NSNotificationCenter 接收事件方法正在执行多次

ios - 如何在 tabbarcontroller 中旋转一个 View ?