Я использую XCtest для проверки названия представления. Попытка сначала привыкнуть писать тесты. Настройка выглядит какЗаголовок тестового просмотра с использованием XCTest
- (void)setUp
{
[super setUp];
self.appDelegate = [[UIApplication sharedApplication] delegate];
self.tipViewController = self.appDelegate.tipViewController;
self.tipView = self.tipViewController.view;
self.settingsViewController = self.appDelegate.settingsViewController;
self.settingsView = self.settingsViewController.view;
}
Проблема заключается в «settingsViewController». У меня есть две функции для фактического теста:
- (void) testTitleOfMainView{
XCTAssertTrue([self.tipViewController.title isEqualToString:@"Tip Calculator"], @"The title should be Tip Calculator");
//why does this not work?
// XCTAssertEqual(self.tipViewController.title, @"Tip Calculator", @"The title should be Tip Calculator");
}
- (void) testTitleOfSettingsView{
//make the setttings view visible
[self.tipViewController onSettingsButton];
//test the title
XCTAssertTrue([self.settingsViewController.title isEqualToString:@"Settings"], @"The title should be Settings");
}
Работает «testTitleOfMainView». Но «testTitleOfSettingsView терпит неудачу как self.settingsViewController равна нулю. Я вроде понимаю, почему. Вид не был инициализирован до сих пор. Так что я попытался отправить сообщение на основной контроллер, который приносит settignscontroller ввиду
[self.tipViewController onSettingsButton];
settingsController по-прежнему равна нулю. Должен ли я использовать издевается? Кто-то предложил это мой другой вопрос xctest - how to test if a new view loads on a button press
Должен ли я подкласс settingsview и привести его вручную? Спасибо.
Еще раз спасибо! Должен ли я когда-либо испытывать реальные взаимодействия? Тем не менее, я бы издевался над этим, я думаю, как вы показали в другом вопросе. –
В общем, не бойтесь использовать реальные взаимодействия до тех пор, пока они бывают быстрыми и не вызывают постоянных изменений (что может испортить другие тесты). Другими словами, избегайте создания сетей, файловой системы или постоянных баз данных. –
Спасибо, Джон. Я смотрю вашу серию youtube на TDD. Очень информационный для новичка, как я! –