绕过 Rails 编写更快的测试
1. 测试工具与测试类型
Guard 等自动测试工具对聚焦的单元测试很有用,但对集成测试则不太实用。因为在不重新运行整个集成测试套件的情况下,很难让特定文件知道它们可能参与的集成测试。不过,若愿意花点精力调整 Guardfile,就无需额外操作,测试会持续运行。
目前编写的测试主要分为五类:
1. 端到端测试 :需要完整的 Rails 栈,因为要测试整个栈。
2. 仅使用 ActiveRecord 且需要数据库的测试 :包括 ActiveRecord 查找方法的测试和保存到数据库的动作对象测试。
3. 需要 ActionPack 的请求测试 :可能需要也可能不需要 ActiveRecord,也可能会或不会触及数据库,取决于如何进行存根处理。
4. 使用 ActiveRecord 对象但不触及数据库的测试 。
5. 完全不使用 Rails 特定类的测试 。
一般来说,第一类测试最慢,越往后的类别测试速度越快。目前最后一类测试较少。
2. 测试速度的重要性
测试速度至关重要,因为测试会被频繁运行。在快速反馈的测试驱动开发(TDD)中,每小时会多次运行至少一部分测试。测试运行速度可分为七组:
| 组别 | 描述 |
| ---- | ---- |
| 1 | 快到几乎察觉不到 |
| 2 | 快到可以不分散注意力地观看测试运行 | <
超级会员免费看
订阅专栏 解锁全文
97

被折叠的 条评论
为什么被折叠?



