其實我覺得有點不好意思問這個,因爲感覺大約爲基本,你可以走了,但它已經絆倒了我好幾個小時......iPhone測試:測試IBOutlets
比方說,我有一個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?目前它一直告訴我,姓氏textfield未啓用。
感謝您的幫助和新年快樂!
非常感謝你Max - 你是一個明星。調用視圖屬性並沒有真正解決問題(它產生了一個單獨的錯誤),但手動調用loadView工作。非常感謝您的解釋 - 我認爲該視圖已被自動加載,所以您所說的將所有內容置於原地。我希望你有一個神話般的2012年! – 2011-12-31 10:55:06