Я пытаюсь иметь дело с OCMock
. Я создал простой класс MyClass
.Как начать с OCMock и проверить, был ли вызван метод
@interface MyClass : NSObject
- (NSString *)simpleMethod;
@end
@implementation MyClass
- (NSString *)simpleMethod {
[self method];
return @"simple";
}
- (void)method {
NSLog(@"ABC");
}
@end
То, что я хочу, чтобы проверить, является ли метод method
был вызван, когда simpleMethod
был вызван. Теперь у меня есть следующий код, но он не работает:
- (void)testMethodInvoked
{
id mock = [OCMockObject mockForClass:[MyClass class]];
[[mock stub] simpleMethod];
SEL selector = NSSelectorFromString(@"method");
[[mock expect] methodForSelector:selector];
[mock verify];
}
Как проверить этот случай? Я думаю, что это довольно легко сделать, но я понятия не имею, как решить эту проблему.
Как создать метод mock и call simpleMethod
, который вызывает метод method
?
Текущий журнал:
<unknown>:0: error: -[OCMockTestTests testOne] : OCMockObject[MyClass]: expected method was not invoked: methodForSelector:@selector(method)
Спасибо но проблема в том, что 'method' является частным методом, не видны за пределами класса' MyClass' –
Не звучит как подходящее условие для единичного теста, а затем @TomaszSzulc. Модульные тесты для интерфейсов - внешнее поведение - не реализация. –
@JoshCaswell Спасибо за совет. –