Я учусь использовать 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
.