我正在学习如何使用 OCMock 来测试我的 iPhone 的项目,我有这样的场景:一个带有getHeightAtX:andY:
方法的 HeightMap 类,以及一个使用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'
我错过了什么?我发现没有办法将 a 传递anyValue
给这个模拟。