使用OCMock时捕获块传入方法

时间:2017-08-23 16:23:05

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

我希望捕获传递给模拟对象的块。这是被嘲笑的类的具体功能:

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

这是我尝试捕获块:

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

然而,这似乎并没有起作用。如何使用checkWithBlock捕获块并能够使用我选择的参数调用该块?

1 个答案:

答案 0 :(得分:1)

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