OCMockito捕获原始类型?

时间:2013-12-11 05:55:26

标签: ocmockito

如何使用OCMockito捕获具有原始值的参数?

MKTArgumentCaptor似乎只能捕获对象类型? Xcode说“指向整数转换的指针不兼容”。

1 个答案:

答案 0 :(得分:6)

对于原始论点,你必须做一点舞蹈。我们假设我们模拟了NSMutableArray,并希望验证对

的调用
- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;

而不是

[verify(mockArray) replaceObjectAtIndex:[argument capture] withObject:anything()];

它给你类型冲突,我们只有一个虚拟值(0会很好)但添加一个OCMockito调用来覆盖给定参数索引处的匹配器:

[[verify(mockArray) withMatcher:[argument capture] forArgument:0]
    replaceObjectAtIndex:0 withObject:anything()];

-withMatcher:forArgument:的参数索引对于第一个参数是0,所以这说,&#34;对于第一个参数,忽略传入的任何内容并使用此匹配器。&#34; < / p>

还有一个方法-withMatcher:在第一个参数上执行此操作,因此此示例可以简化为

[[verify(mockArray) withMatcher:[argument capture]]
    replaceObjectAtIndex:0 withObject:anything()];