Edu*_*sta 30 primitive xcode ocmock
我正在学习如何使用OCMock来测试我的iPhone项目,我有这样的场景:带有getHeightAtX:andY:方法的HeightMap类和使用的Render类HeightMap.我正在尝试使用一些HeightMap模拟单元测试渲染.这有效:
id mock = [OCMockObject mockForClass:[Chunk class]];
int h = 0;
[[[mock stub] andReturnValue:OCMOCK_VALUE(h)] getHeightAtX:0 andY:0];
Run Code Online (Sandbox Code Playgroud)
当然,仅适用于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]];
Run Code Online (Sandbox Code Playgroud)
但这引发了两个编译警告:
警告:
'getHeightAtX:andY:'从没有强制转换的指针传递整数的参数1
和运行时错误:
调用了意外的方法:
'getHeightAtX:0 andY:0 stubbed: getHeightAtX:15545040 andY:15545024'
我错过了什么?我发现无法传递anyValue给这个模拟器.
And*_*ark 50
自问这个问题以来已经有一段时间了,但我自己遇到了这个问题,无法在任何地方找到解决方案.OCMock现在支持ignoringNonObjectArgs这样的一个例子expect是
[[[mockObject expect] ignoringNonObjectArgs] someMethodWithPrimitiveArgument:5];
Run Code Online (Sandbox Code Playgroud)
5实际上并没有做任何事情,只是一个填充值
Chr*_*lay 18
OCMock目前不支持原始参数的松散匹配.有关在OCMock论坛上支持此问题的潜在变化的讨论虽然似乎已停滞不前.
我发现的唯一解决方案是以这样的方式构建我的测试,即我知道将传入的原始值,尽管它远非理想.
| 归档时间: |
|
| 查看次数: |
16425 次 |
| 最近记录: |