【发布时间】:2011-06-12 23:02:11
【问题描述】:
我正在学习如何使用 OCMock 来测试我的 iPhone 的项目,我有这样的场景:一个带有 getHeightAtX:andY: 方法的 HeightMap 类,以及一个使用 HeightMap 的 Render 类。我正在尝试使用一些 HeightMap 模拟对渲染进行单元测试。这有效:
id mock = [OCMockObject mockForClass:[Chunk class]];
int h = 0;
[[[mock stub] andReturnValue:OCMOCK_VALUE(h)] getHeightAtX:0 andY:0];
当然,仅适用于 x=0 和 y=0。我想使用“平面”高度图进行测试。这意味着我需要做这样的事情:
id chunk = [OCMockObject mockForClass:[Chunk class]];
int h = 0;
[[[chunk stub] andReturnValue:OCMOCK_VALUE(h)] getHeightAtX:[OCMArg any] andY:[OCMArg any]];
但这会引发两个编译警告:
警告:传递
'getHeightAtX:andY:'的参数 1 从指针生成整数而不进行强制转换
还有一个运行时错误:
调用了意外的方法:
'getHeightAtX:0 andY:0 stubbed: getHeightAtX:15545040 andY:15545024'
我错过了什么?我发现无法将 anyValue 传递给这个模拟。
【问题讨论】:
-
如果值得您花时间,可以编辑 OCMock 来执行此操作:stackoverflow.com/questions/16916115/ocmock-passing-any-cgsize/…