我正在使用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」的作品。但隨着self.settingsViewController爲零的「testTitleOfSettingsView失敗。我有點明白爲什麼。該視圖尚未初始化尚未。所以,我想送帶來鑑於settignscontroller消息給主控制器
[self.tipViewController onSettingsButton];
的settingsController仍然是零。我應該用嘲弄?有人認爲這對我的其他問題 xctest - how to test if a new view loads on a button press
我應該繼承的settingsview和手動把它?謝謝。
再次感謝你喬恩!我是否需要測試真正的交互?即使如此,我也會嘲笑它,我想你就是在另一個問題中展示的。 –
一般來說,不要害怕使用真正的互動,只要它們速度快並且不會造成持續的變化(這會弄亂其他測試)。換句話說,避免網絡,文件系統或持久性數據庫。 –
謝謝喬恩。我正在關注TDD上的youtube系列。非常適合像我這樣的新手! –