我正在测试 ViewController 中的一些代码(某些控件根据某些 UISwitches 的状态处于活动状态)并决定使用 Kiwi,因为我们正在使用它进行其他一些低级逻辑测试。
我的期望是运行这样的测试:
__block AViewController *aVC;
it(@"(tokenTextField) should be hidden if the token switch is set to off", ^{
lvC.useTokenSwitch.on = false;
[[theValue(aVC.tokenTextField.hidden) should] equal:theValue(YES)];
});
我的问题是 AViewController 的初始化。如果我这样做了:
aVC = [[AViewController alloc] initWithNibName:@"aViewController" bundle:nil];
我会得到一个没有初始化任何控件的“AViewController”,所以我必须手动初始化它们中的每一个。
所以我尝试获取 AViewController 这样做:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
aVC = [storyboard instantiateViewControllerWithIdentifier:@"AViewController"];
然而,这会导致错误消息:
NSInvalidArgumentException“在捆绑包 NSBundle </Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk/Developer/usr/bin> 中找不到名为“MainStoryboard”的故事板(已加载)“ 提高
我已将 MainStoryboard 包含在我的测试目标中,并将其包含在“构建阶段”->“复制捆绑资源”中,但仍然没有。
所以我想知道是否可以从 Kiwi 测试目标中的 Storyboard 实例化 ViewController?(因为我在任何地方都没有看到任何例子)。
我的方法是错误的,我应该嘲笑 ViewController 吗?
我是否遗漏了要包含在测试目标中的内容?