gpt4 book ai didi

objective-c - iPhone 测试 : testing IBOutlets

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:20:16 26 4
gpt4 key购买 nike

我实际上觉得问这个问题有点尴尬,因为它感觉很基本,但它已经困扰了我几个小时......

假设我有一个 UIViewController 实例(称为 MyViewController),它只有一个 IBOutlet 到 UITextField,当页面加载时,我根据 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 吗?目前它一直告诉我姓氏文本字段未启用。

感谢您的帮助,祝大家新年快乐!

最佳答案

这是因为手动调用 viewDidLoad 并不会真正加载 View 。您应该调用 View Controller 的 View 属性,它将自动加载 View (或手动调用 loadView)。

关于objective-c - iPhone 测试 : testing IBOutlets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8687378/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com