使用 OCMock 时捕获传递到方法中的块

Capturing Block passed into method when using OCMock

我正在寻找传递给模拟对象的块。下面是class被mock的具体函数:

[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 捕获块并能够使用我选择的参数调用该块?

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