如何隔离应用程序中的任何ViewController进行UI测试

时间:2016-04-14 05:27:35

标签: ios swift unit-testing xcode7

我已经开始为我的应用程序进行UI测试。我已经完成了WWDC UI测试教程并注意到,对于所有测试,我需要在对特定的ViewController进行测试之前启动并设置我的应用程序,ViewController可以深入到我的应用程序层次结构中。

我想像我们对类的单元测试一样,单独测试我的应用程序的每个ViewController。这可以通过Xcode 7中引入的UI测试实现,我可以使用一些模拟数据渲染我的ViewController并对其进行测试。

1 个答案:

答案 0 :(得分:1)

  

这可以通过UI测试实现,我可以使用一些模拟数据渲染我的ViewController并对其进行测试。

这不是开箱即用的,但您可以在应用程序中安装一些基础设施来实现此目的。

您列出了两个要求:1)访问可能位于导航层次结构深处的视图控制器,以及2)向它们提供存根(存根在这种情况下是正确的术语)数据。

XCUIApplication公开了launchArgumentslaunchEnvironment属性,允许开发人员通过UI测试将额外的配置传递给应用程序,因为那些不能直接访问应用程序代码。

您可以利用这些功能在开始之前将配置或命令传递给您的应用,并将其自身配置为您要测试的状态。

例如,您可以在app委托中放置路由系统,并在UI测试中为所需的视图控制器传递路由。这样,当app开始测试时,它会读取你给它的路径并直接加载你的视图控制器。

您可以利用相同的技术传递所需的数据,以便使用它初始化视图控制器。

不幸的是,我只是在这里理论化,我自己一直在玩这个想法,但实际上还没有开始实施它。我认为实施这样的设置并使其足够灵活需要一定的努力,因为有很多配置要实现。