我正在学习如何使用 OCMock 来测试我的 iPhone 项目,我有这样的场景:一个带有getHeightAtX:andY:
方法和 Render 类使用HeightMap
。我正在尝试使用一些单元测试渲染HeightMap
嘲笑。这有效:
id mock = [OCMockObject mockForClass:[Chunk class]];
int h = 0;
[[[mock stub] andReturnValue:OCMOCK_VALUE(h)] getHeightAtX:0 andY:0];
当然,仅适用于x=0
and y=0
。我想使用“平面”高度图进行测试。这意味着我需要做这样的事情:
id chunk = [OCMockObject mockForClass:[Chunk class]];
int h = 0;
[[[chunk stub] andReturnValue:OCMOCK_VALUE(h)] getHeightAtX:[OCMArg any] andY:[OCMArg any]];
但这会引发两个编译警告:
警告:传递参数 1'getHeightAtX:andY:'
从指针生成整数而不进行强制转换
和运行时错误:
意外的方法被调用:'getHeightAtX:0 andY:0 stubbed: getHeightAtX:15545040 andY:15545024'
我缺少什么?我发现没有办法通过anyValue
对于这个模拟。
自从提出这个问题以来已经有一段时间了,但我自己也遇到了这个问题,并且在任何地方都找不到解决方案。 OCMock 现在支持ignoringNonObjectArgs
所以一个例子expect
将会
[[[mockObject expect] ignoringNonObjectArgs] someMethodWithPrimitiveArgument:5];
5 实际上没有做任何事情,只是一个填充值
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)