Ios 如何独立地对应用程序中的任何ViewController进行UI测试

Ios 如何独立地对应用程序中的任何ViewController进行UI测试,ios,swift,unit-testing,xcode7,Ios,Swift,Unit Testing,Xcode7,我已经开始为我的应用程序进行UI测试。我已经阅读了WWDC UI测试教程,并注意到对于所有测试,在对特定的ViewController进行测试之前,我需要启动并设置我的应用程序,而ViewController可以深入到我的应用程序层次结构中 我想单独测试应用程序的每个ViewController,就像我们对类进行单元测试一样。在Xcode 7中引入的UI测试中,我可以用一些模拟数据呈现我的ViewController并对其进行测试吗 通过UI测试,我可以使用一些模拟数据呈现我的ViewContr

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

我想单独测试应用程序的每个ViewController,就像我们对类进行单元测试一样。在Xcode 7中引入的UI测试中,我可以用一些模拟数据呈现我的ViewController并对其进行测试吗

通过UI测试,我可以使用一些模拟数据呈现我的ViewController并对其进行测试,这是可能的吗

这是不可能开箱即用的,但是您可以在应用程序中放置一些基础设施来实现这一点

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

xguiapplication
公开
launchArguments
launchEnvironment
属性,允许开发人员从UI测试向应用程序传递额外的配置,因为这些测试无法直接访问应用程序代码

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

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

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

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