OCMock を使用して iPhone のプロジェクトをテストする方法を学習しています。このシナリオがあります。getHeightAtX:andY:
メソッドを使用する HeightMap クラスと、 HeightMap
. HeightMap
いくつかのモックを使用して Render を単体テストしようとしています。これは機能します:
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]];
ただし、これにより 2 つのコンパイル警告が発生します。
警告: の引数 1 を渡すと
'getHeightAtX:andY:'
、キャストなしでポインタから整数になります
および実行時エラー:
予期しないメソッドが呼び出されました:
'getHeightAtX:0 andY:0 stubbed: getHeightAtX:15545040 andY:15545024'
私は何が欠けていますか?anyValue
このモックにa を渡す方法が見つかりませんでした。