Я на самом деле чувствую себя немного неловко, когда спрашиваю об этом, потому что это кажется настолько базовым, насколько ты можешь, но это ставит меня в тупик часами ...
Допустим, у меня есть экземпляр UIViewController (называемый MyViewController), в котором просто есть один IBOutlet для UITextField, и когда страница загружается, я либо устанавливаю его в значение Enabled, либо не на основе свойства BOOL.
- (void)viewDidLoad {
[super viewDidLoad];
self.surname.enabled = self.allowTextField;
}
Все подключено правильно, и когда я запускаю приложение, оно работает как положено (лорд - я надеюсь, потому что, если я не смогу сделать эту часть правильно, я, вероятно, не должен писать приложения для iPhone ...) ,
Во всяком случае, я решил быть усердным и написать модульные тесты приложения для приложения, потому что это то, в чем я хочу стать более уверенным. К сожалению, я не могу на всю жизнь понять, почему следующее не работает ...
-(void)testFieldEnabled {
MyViewController *myController = [[MyViewController alloc] initWithNibName:nil bundle:nil];
myController.allowTextField = YES;
[myController viewDidLoad];
STAssertTrue(myController.surname.enabled, @"Why is this not correct?");
}
Я сохранил этот пример чрезвычайно простым, потому что я действительно не понимаю, почему это не работает, и считаю, что это должно быть из-за серьезного сбоя в моем понимании модульного тестирования. Разве вышеприведенный модульный тест не должен запустить экземпляр страницы MyViewController, установить свойство, запустить метод и вернуть true? В данный момент мне постоянно говорят, что текстовое поле фамилии не включено.
Спасибо за вашу помощь и счастливого нового года всем вам!