首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OCMock返回值

OCMock返回值
EN

Stack Overflow用户
提问于 2009-10-23 21:23:36
回答 1查看 2.1K关注 0票数 4

我正在尝试为一个输出依赖于NSDate的timeIntervalSinceNow返回值的方法编写一个测试。我想在测试中指定返回值,这样我就可以测试某些场景。

我很难让这个OCMock对象返回我想要的结果。下面是我的代码:

代码语言:javascript
复制
id mock = [OCMockObject mockForClass:[NSDate class]];
NSTimeInterval t = 20.0;
[[[mock stub] andReturnValue:OCMOCK_VALUE(t)] timeIntervalSinceNow];
STAssertEquals([mock timeIntervalSinceNow], 20.0, @"Should be eql.");

这会生成一个" error : expected -qualifier-list before 'typeof“错误。

有什么想法吗?我刚接触ObjC,所以非常感谢任何其他相关的技巧。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-10-23 21:32:17

实际上,这是一个编译器错误,而不是一个OCMock错误。这与OCMOCK_VALUE(t)宏的工作方式有关。它被定义为:

代码语言:javascript
复制
#define OCMOCK_VALUE(variable) [NSValue value:&variable withObjCType:@encode(typeof(variable))]

typeof()指令不是C89的一部分,因此请确保将编译器设置为使用-std=gnu89std=gnu99标志。根据苹果公司的文档,如果你将其设置为Compiler Default,这等同于gnu89,这也是可以的。

这可能是您出错的原因。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1613405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档