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