Jest 由 Facebook 开发,是用于测试自动化的顶级 JavaScript 测试框架之一,专注于简单性。创建 Jest 是为了测试主要使用 React 开发的 Web 应用程序的 JavaScript 实现。除此之外,Jest 还无缝支持 Angular、Vue、NodeJs 等中的单元测试,并且可以与使用 TypeScript、Babel 等的项目一起工作。
Mocha 是另一个顶级 JavaScript 测试框架,旨在测试在 Node.js 中运行的应用程序。它支持各种类型的测试,例如单元测试、集成测试和端到端测试。
Jasmine 是一个功能丰富的顶级 JavaScript 测试框架,被开发人员广泛使用,尤其是那些需要测试 Angular 应用程序的人。在大多数情况下,应用程序在 Node.js 上运行并且需要诸如 Karma 或 Chutzpah 之类的运行器
对于 React 或 Next.js 应用程序,建议尝试 Jest,因为它是默认选项。目前,Facebook 一直在大力投资,进一步完善这一框架。此外,React 开发人员在使用 Jest 后记录了积极的体验。
如果项目需要在 Jest 不支持的 IDE 中调试测试用例,那么下一个最佳选择是 Jasmine。
如果你的项目比较大,需要集成各种外部库,那么 Jasmine 会是更好的选择。另一方面,Jest 更适合较小的项目,因为它提供了一个集成的生态空间,具有预先配置的功能,如测试运行器、断言库等。
对于大型 Node.js 项目,Mocha 可能是最佳选择。Mocha 明显更加灵活,并带有一个测试运行器,但你必须自己拼凑它。
在 Angular 世界中,Jasmine 是推荐的测试框架。这是因为默认情况下,Angular CLI 附带 Jasmine 和 Karma 作为测试运行器。但是,如果将来有需求,从 Jasmine 迁移到 Jest 很容易。
Reference
Jest vs Mocha vs Jasmine:比较前 3 个 JavaScript 测试框架