Я создал следующий класс:OCMock не работает должным образом в iOS?
@implementation BCGlobalConstantBox
+ (instancetype)sharedInstance {
static BCGlobalConstantBox *instance = nil;
static dispatch_once_t predicate;
dispatch_once(&predicate, ^{
instance = [[self alloc] init];
});
return instance;
}
- (NSString *)someMethod {
return nil;
}
@end
Затем я добавил OCMock с помощью источников (просто добавили файлы в моем проекте). Я использую его не для тестирования, а как временные данные в обычной задаче отладки.
Следующий код работает:
id goalObj = [BCGlobalConstantBox class];
id mock = [OCMockObject niceMockForClass:goalObj];
// id mock = [OCMockObject partialMockForObject:[goalObj sharedInstance]];
NSArray *arr = @[@1, @2, @3];
[[[mock stub] andReturn:@"123"] someMethod];
id obj = [[BCGlobalConstantBox sharedInstance] someMethod];
Но если я раскомментировать строку с «макетом» инициализации вместо рабочей единице, то весь код не работает должным образом (объект должен быть равен @ «123»).
Я хочу добавить функциональность для всего класса, а не только для одного объекта. Что неверно в моем коде?
P.S. mockForClass:
и niceMockForClass:
обе не работаем.