Ios 这样的集成测试可能吗?

Ios 这样的集成测试可能吗?,ios,xcode,integration,uitest,Ios,Xcode,Integration,Uitest,在Xcode中似乎有两种测试,UI测试使用自动化测试在另一个进程中运行的应用程序,以及单元测试,在单元测试中隔离测试小的代码单元。我想知道是否有一个中间立场 例如,如果我运行单元测试,那么在内存中会启动一个完整的应用程序,我不使用它,因为我正在实例化我需要在测试用例类中进行测试的类。(我只知道它在那里,因为我在模拟器窗口中看到它,而且我的测试类有时会使用通知中心与它进行意外通信。) 如果我可以使用这个应用程序进行集成测试,那就太好了。它们将类似于UI测试,但速度要快得多,我将能够访问实现。例如,

在Xcode中似乎有两种测试,UI测试使用自动化测试在另一个进程中运行的应用程序,以及单元测试,在单元测试中隔离测试小的代码单元。我想知道是否有一个中间立场

例如,如果我运行单元测试,那么在内存中会启动一个完整的应用程序,我不使用它,因为我正在实例化我需要在测试用例类中进行测试的类。(我只知道它在那里,因为我在模拟器窗口中看到它,而且我的测试类有时会使用通知中心与它进行意外通信。)

如果我可以使用这个应用程序进行集成测试,那就太好了。它们将类似于UI测试,但速度要快得多,我将能够访问实现。例如,我可以这样做,以便安装mock,以便模拟远程端点的行为,并从用户的角度查看某些响应的效果


问题是:有没有一个好的(有文档记录的)方法来启动一个在XTest上下文中使用Mock的应用程序,并找到单元测试和UI测试之间的中间地带?

有趣的是,前几天我们也遇到了这种问题。我不确定这些信息是否对你有帮助

因此,对您的具体问题的简短回答是,apple docs(AFAIK)中没有专门说明如何在测试中生成模拟类的书面文档,但这并不一定意味着您无法生成模拟类。有很多方法可以让你制作一个模拟场景来处理你的代码

手动方式:使协议/接口由工作类和模拟类实现,覆盖工作类的特定方法,以某种方式模拟结果、swizzling等

第三方方式:知名人士(OCMock、Mockito)

在objective c的案例中,有很多第三方,但有一些swift仍在开发中,因为swift对其运行库的支持(swift尚未完全公开其运行库)

这里有一个有用的链接:(很棒的文章)

干杯