gpt4 book ai didi

iphone - OCMock 返回值

转载 作者:搜寻专家 更新时间:2023-10-30 19:40:53 28 4
gpt4 key购买 nike

我正在尝试为输出取决于 NSDate 的 timeIntervalSinceNow 返回值的方法编写测试。我想在我的测试中指定返回值,以便我可以测试某些场景。

我很难让这个 OCMock 对象返回我想要的东西。这是我的代码:

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.");

这会产生一个“错误:‘typeof’错误之前的预期说明符限定符列表”。

有什么想法吗?我是 ObjC 的新手,所以非常感谢任何其他相关提示。

谢谢。

最佳答案

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

#define OCMOCK_VALUE(variable) [NSValue value:&variable withObjCType:@encode(typeof(variable))]

typeof() 指令不是 C89 的一部分,因此请确保您已将编译器设置为使用 -std=gnu89std=gnu99 标志。根据 Apple 文档,如果您将其设置为 Compiler Default,这相当于 gnu89,这也很好。

这可能是您出错的原因。

关于iphone - OCMock 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1613405/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com