我在測試ViewController內的某些代碼(某些控件是活動的,取決於某些UISwitches等的狀態),並決定去獼猴桃的它,因爲我們正在使用它進行其他一些低級邏輯測試。是否有可能實例化視圖控制器從獼猴桃測試故事板
我的期望是這樣運行測試:
__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 <名爲 'MainStoryboard' 故事板/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk/Developer/usr/bin >(加載)」提出
我已將MainStoryboard包含在我的測試目標中,並將其包含在「Build Phases」 - >「Copy Bundle Resources」中,但仍然沒有任何內容。
所以我想知道是否甚至有可能在Kiwi測試目標中從Storyboard實例化ViewController? (因爲我沒有在任何地方看到它的任何例子)。
我的方法錯了,我應該嘲笑ViewController?
我錯過了什麼可以包含在測試目標中嗎?
我可以用這種方式實例化故事板。實際上,我*不會*在測試目標或複製包資源構建階段包含故事板,但我只是嘗試了兩種方式,任何一種方式都適用於我。 –
謝謝,在玩弄之後,我設法成功實例化了它。但現在我卡住了,然後我執行: [aVC performSelectorOnMainThread:@selector(loadView)withObject:nil waitUntilDone:YES]; 因爲它導致:NSInvalidArgumentException「 - [__ NSCFType pointSize]:發送到實例0x21f4690的無法識別的選擇器」 – Katagelon