【发布时间】:2013-08-23 06:15:39
【问题描述】:
我使用GHUnit。我要测试IBOutlet的属性如isHidden、delegate等
我尝试了下面的代码来测试 myView 是否被隐藏:
- (void)testViewDidLoad
{
// Call view on viewcontroller which will load the view if not loaded
[testClass view];
// Tests
testClass.myView.hidden = YES;
if (testClass.myView.isHidden) {
GHTestLog(@"Hidden");
}
else {
GHTestLog(@"Not Hidden");
}
}
这总是记录Not Hidden,而在记录之前我将它设置为hidden = YES。
这是为什么?
为了测试IBOutlet 的delegate 属性,我尝试了以下行:
GHAssertNotNil(testClass.textField.delegate, @"delegate is nil.");
Reason : ((testClass.textField.delegate) != nil) should be FALSE. 失败
怎么了?
编辑: 尝试了下面的代码,但不起作用。
[testClass view];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard"
bundle:[NSBundle bundleForClass:[self class]]];
GHAssertNotNil(storyboard, nil);
// Tests
GHAssertTrue(testClass.myView.isHidden, nil); // This fails
【问题讨论】:
-
你有验证
testClass.myView不为零的测试吗? -
@FlorianMielke 你是对的。
myView为零。但是当我调用[testClass view];时,它不应该被初始化吗?或者有什么方法可以初始化?重点是IBOutlet和weak属性。 -
您使用的是XIB还是故事板作为界面?
-
@FlorianMielke 故事板。
标签: ios objective-c unit-testing ios6 gh-unit