Succinct (サシンクト)
使用Succinct对iOS UI的行为进行单元测试,同时将视图的私有实现细节解耦。
⚡️ 速度:通过单元测试以闪电般的速度获得反馈,而不是等待UI测试有时能给出准确的结果...🔍 封装:通过搜索视图层次结构,可以保持UI内部的私有性,遵守封装原则。🛠 架构无关:可以使用任何架构模式(MVC、MVP、MVVM等)来实现您的UI。🧩 重构的自由:可以在不更改测试的情况下重构到不同的架构模式。
重要: Succinct还在开发中,并不支持测试iOS视图层次结构的每一个方面。根据需要添加功能。如果您希望看到添加的功能,请随时提出问题或提交PR。 👍🏻
安装
Carthage
只需在Cartfile.private中将Succinct包含在内
github "derekleerock/Succinct"
并在测试目标中包含它。
Cocoapods
只需在Podfile的测试目标中添加Succinct
target 'MyAmazingApp' do
...
target 'MyAmazingAppTests' do
inherit! :search_paths
pod 'Succinct'
end
end
文档
自动生成文档归功于 Jazzy,GitHubPages 和 Travis-CI 集成,以及 @jgsamudio 在此博客文章中的一些优秀指导 博客文章链接。
贡献代码
Succinct 的发展在这里通过 GitHub Issues 完成,所以任何人都可以贡献并了解框架的当前状态。如果您需要的功能没有被包括在内,请随时创建一个 issues 或提出一个 PR,附上您的建议功能和相关测试,以便我们可以讨论。
开发环境设置
假设您已经安装了 Carthage,您可以通过执行以下命令轻松获取必要的依赖项:
$ make bootstrap
运行测试
Succinct 的所有测试都使用 Quick 和 Nimble 进行了测试驱动开发 - 意味着您可以使用 Succinct,对它提供的功能有信心能够提供准确的结果。
Succinct 有两个不同的测试套件:单元测试和模拟器测试。
单元测试
这些单元测试不需要主机应用即可运行,这意味着它们可以在没有模拟器的情况下运行。这使得它们速度非常快!
它们可以使用以下方式执行:
$ make tests
模拟器测试
这些单元测试需要模拟器,因为它们与UI中的元素交互。因为它们是单元测试,所以它们仍然很快,但是启动模拟器会花费一点点时间。
可以使用以下方式执行: $ make simulator-tests
所有测试
这两个测试套件都可以使用以下方法执行:
$ make alltests
在完成您的PR之前,请确保您的功能已经得到适当的测试,并确认所有测试都已成功运行 - 感谢!🙆♂️
许可证
Succinct遵循MIT许可证。请参阅LICENSE
文件。