【问题标题】:Integration test on a library using UI Tests or unit testing framework?使用 UI 测试或单元测试框架对库进行集成测试?
【发布时间】:2018-06-08 10:53:20
【问题描述】:
我必须为其编写集成测试的 iOS 库 (SDK)。此库在 iOS 客户端应用程序中用作库,而不是作为独立应用程序。
关于如何编写集成测试,我发现了 2 个同样好的意见。
使用 XCode UI 测试和测试库与示例客户端应用程序的端到端集成。客户端应用程序将使用库的所有功能。通过这种方式,UI 测试可以向我展示该库如何与客户端应用程序集成。
使用单元测试框架。测试将在库本身内编写。根本不需要客户端应用程序。测试将针对多个类运行,以查看它们如何相互集成。
您认为正确的方法是什么?
【问题讨论】:
标签:
ios
unit-testing
integration-testing
xcode-ui-testing
【解决方案1】:
UI 测试运行缓慢且维护成本高(就时间而言)。只有在无法以其他更快运行和更易于维护的方式获得测试覆盖率时,它们才应该用作获得测试覆盖率的一种方式。
如果您的库没有任何类型的 UI,那么没有理由仅仅为了运行 UI 测试而引入一个。如上所述使用选项 2 会更有意义。
唯一需要注意的是,示例客户端应用程序对于在进行更改时进行手动测试或在进行更改后进行回归测试非常有帮助。这个值取决于你的图书馆里有什么。如果您确实制作了一个示例应用程序,那么编写一两个 UI 测试只是为了检查它在您进行更改时不会倒退/中断可能是一个好主意。如果您不经常使用它,这将特别有价值。