Насмешливые методы класса с OCMock не работают

Что не так с этим кодом? Попытка заставить метод класса возвращать @NO, но он возвращает @YES (NSLog печатает «1»).

// Make the test think you don't have any internet
id mockFunctions = [OCMockObject mockForClass:[Functions class]];
[[[mockFunctions stub] andReturnValue:@NO] connectionAvailable];


NSLog(@"derp: %hhd", [Functions connectionAvailable]);

person Luke The Obscure    schedule 13.12.2013    source источник


Ответы (2)


У меня было две копии класса, над которым издевались. Если не включать файл .m в тестовую цель, все работает нормально.

person Luke The Obscure    schedule 14.12.2013

Конструкция для andReturnValue немного сложнее, чем то, что вы делаете.

[[[mockFunctions stub] andReturnValue:OCMOCK_VALUE((BOOL){NO})] connectionAvailable];

Попробуйте и посмотрите, работает ли это.

person Ben Flynn    schedule 13.12.2013
comment
Я вижу, что у меня была эта ошибка в моем коде, но NSLog по-прежнему дает мне 1, а точки останова показывают, что он все еще вызывает этот метод класса. - person Luke The Obscure; 14.12.2013