1

我希望我的问题不是太基本,因为我对 obj-c 和 OCMockito 都是新手!

我有一个要存根的 void 方法,以便它在运行测试时不执行其操作。

我的方法:

-(void)myVoidMethod { .. }

我想以类似于以下的方式存根它:

[给定([mockDataManager saveChangesToCoreData])];

但是,如果我没有指定“willReturn”语句,我会收到以下错误: “参数类型 'void' 不完整”

如何在 OCMockito 中实现这一点?

4

2 回答 2

0

从评论中获得更多详细信息后,我决定在这里写下答案。

IMO 部分存根(间谍)是不好的做法。我在非常大的遗留项目中使用了两次,我想在某个时候将其更改为更清洁的东西。

其他人之间也有相同的观点。作为快速解决方案,您可以遵循此处的建议- 子类化并覆盖该方法。

于 2014-06-04T08:40:23.887 回答
0

声明此方法声明为返回 id 的虚拟协议将修复编译错误。

@protocol _dummyProtocol
    - (id)methodThatReallyReturnVoid;
@end

[[(id<_dummyProtocol>)[mockObject stub] methodThatReallyReturnVoid] andDo:^(NSInvocation *inv){}];
于 2016-08-16T01:56:40.267 回答