Я изучаю, как использовать 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
этому макету.