2

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

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

不过,如果我可以将此应用程序用于集成测试,那就太好了。它们类似于 UI 测试,但速度更快,而且我可以访问实现。例如,我可以这样做以安装模拟,这样我就可以模拟远程端点的行为,并从用户的角度查看某些响应的效果。

问题是:是否有一种好的(记录在案的)方法可以在 XCTest 上下文中使用 mock 启动应用程序并找到单元测试和 UI 测试之间的中间地带?

4

1 回答 1

0

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

因此,对您的具体问题的简短回答是,苹果文档(AFAIK)中没有专门说明如何在测试中制作模拟类的书面文档,但这并不一定意味着您不能制作一个。您可以通过多种方式制作模拟场景以使用您的代码

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

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

在目标 c 的情况下,那里有很多第 3 方,但是由于 swift 对其运行时库的支持(swift 尚未完全公开其运行时库)

这是一个有用的链接:https ://academy.realm.io/posts/tryswift-veronica-ray-real-world-mocking-swift/ (很棒的文章)

干杯

于 2017-11-23T01:16:50.237 回答