Передача примитивов в заглушку OCMock

Я учусь использовать OCMock для тестирования проекта моего iPhone, и у меня есть такой сценарий: класс HeightMap с методом getHeightAtX: andY: и класс Render с использованием 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]];

Но это вызывает два предупреждения компиляции:

предупреждение: передача аргумента 1 'getHeightAtX: andY:' делает целое число из указателя без приведения

и ошибку времени выполнения:

неожиданно вызванный метод: 'getHeightAtX: 0 andY: 0 заглушка: getHeightAtX: 15545040 andY: 15545024'

Что мне не хватает? Я не нашел способа передать этому макету anyValue .

30
задан Regexident 23 May 2013 в 09:34
поделиться