У меня есть частное свойство, которое объявлено в файле .m файла моего класса для тестирования, позвольте ему назвать ClassUnderTest. ClassUnderTest создает экземпляр класса ClassToBeMocked. Как использовать OCMock для извлечения экземпляра класса ClassToBeMocked и присвоения ему класса ClassUnderTest?
Как вы издеваетесь над частными объектами в OCMock для iOS?
Ответ 1
Повторно объявить свойство в вашем тестовом классе. Вы можете сделать то же самое для частных методов. В ClassUnderTestTest.m:
@interface ClassUnderTest ()
@property(retain)ClassToBeMocked *instanceToBeMocked;
-(void)somePrivateMethod;
@end
Ответ 2
Выполняется ли следующее?
id classUnderTest = ... // get from somewhere
id mock = [OCMockObject mockForClass:[ClassToBeMocked class]];
[classUnderTest setValue:mock forKey:@"nameOfThatPrivateProperty"];
Не совсем уверен, можете ли вы установить частные свойства, подобные этому. Я думаю, это зависит от того, что это за собственность.