我同时学习 Jest 和 Cypress。我知道他们不是直接竞争对手,因为 Cypress 专注于 E2E 而 Jest 专注于单元测试。目前,我已经在我的项目中实现了 Jest 和 Cypress,并进行了一些测试。
但实际上我可以在 Cypress 和 Jest 中测试大多数东西,而且我常常很难决定用什么来编写我的测试。与单个测试库相比,它也更难维护。
我想知道 - Cypress(或替代方案)和 Jest(或替代方案)一起使用的频率如何?使用两者真的是标准和良好做法吗?或者大多数开发人员/团队坚持使用单一的解决方案,这很好吗?
更新编辑:问这个问题已经很久了。我得到了评论中也提出的妥协。我正在使用 Cypress + 新的 Cypress 组件测试(所以没有 Jest),而不是仅使用 Cypress 或 Cypress + Jest。多亏了我拥有相同的库和断言(更易于管理),但可以同时测试 e2e 和组件。
原文由 norr 发布,翻译遵循 CC BY-SA 4.0 许可协议
简短回答:在同一个代码库中使用 Jest 和 Cypress 是很常见的。
单元、集成或 E2E 测试
使用像 Vue 和 React 这样的组件库,集成和单元测试之间的界限可能会变得有点模糊。我们甚至可以对这两种情况使用相同的工具(Jest 和 Cypress),这让事情变得更加混乱。我建议您以测试“用户故事”为目标,换句话说,确保用户始终可以执行关键操作。例如:
其中一些测试将涉及一个组件,另一些将涉及两个组件,还有一些将需要整个应用程序。由于快速反馈循环,我更喜欢使用 Jest 和 测试库 编写较小的测试(单元和集成)。我几乎可以同时开发和运行我的测试。
最终,您会遇到涉及太多移动部件(组件)的情况,以至于无法使用 Jest。这就是 Cypress 的亮点,它非常适合测试端到端的工作流程。