2012-04-23 40 views
4

是否有任何方法可以从模拟器中的故事板运行特定场景以进行测试?必须通过应用程序中的多个页面才能访问要测试的正确页面是不方便的。使用故事板进行单元测试

+1

您是否在通过xcode/sentestingkit或通过ui自动化进行单元测试? – shawnwall 2012-05-23 20:38:49

回答

1

单元测试相当不适合任何用户界面。您应该尝试直接减少对模型和bizz逻辑的单元测试。

要测试用户界面,也就是集成测试,您可能需要查看UIAutomation和/或KIF

+1

基本上,我只是寻找一种方法来加载一个场景到模拟器而不是整个故事板。也许这是一个坏主意。 – zakdances 2012-04-29 12:31:37

2

它应该能够做到这一点:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil]; 
UITableViewController *tableVC = [storyboard instantiateViewControllerWithIdentifier:@"MyTable"]; 

,如果你想模拟显示没有实际把它在屏幕上的视图控制器:

[tableVC loadView]; 
[tableVC viewWillAppear:YES]; 
[tableVC viewDidAppear:YES]; 

无论它实际上是一个好主意做这件事是另一回事。

+0

Apple文档不鼓励人们直接调用loadView。 – fatuhoku 2014-04-05 14:38:06

+0

他们这样做;但这是测试代码,而不是生产代码(KIF也充满了你在生产代码中永远不应该做的事情)。你可以访问tableVC.view(这会导致视图被加载),但我可以想象,最终可能导致编译器或静态分析器警告,因为返回值将被忽略。 – JosephH 2014-04-05 16:29:05