Я изучаю, как использовать OCMock для тестирования моего проекта iPhone, и у меня есть этот сценарий: класс HeightMap с методом getHeightAtX:andY: и класс Render с использованием HeightMap. Я пытаюсь unit test Render использовать некоторые HeightMap mocks. Это работает:
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 stubbed: getHeightAtX:15545040 andY:15545024'
Что мне не хватает? Я не нашел способа передать anyValue этому макету.