当开始开发新前端项目的时候,我常常会问本身两个问题:“我应该用那一个 JavaScript 单元测试框架呢?” 和 “我应该花时间去添加测试代码吗?”javascript
个人同事常常写一些有关单元测试如何让脑子平静下来且减小软件错误的文章。因此我也总会花时间来作测试。可是在你的项目中应该选那个框架来作测试呢?在匆忙作出决定以前,我搜集了 5 个最受欢迎的 JavaScript 单元测试框架,让你决定那一个才是最合适你的。html
注意:若是你已经有更喜欢的测试框架而且它没有出如今下面列表中,在评论中让我知道我会添加到文章中。java
最受欢迎的 Javascript 单元测试框架之一,Jasmine提供全部你所须要的功能而且开箱即用。android
我对 Jasmine 的见解ios
我不是占有全局变量环境的粉丝,因此 Jasmine 会在个人小本子上面丢些分。在另外一方面,它有不少很好的即开即用功能。它看上去会显得稍微 “老些” 比起其它在这列表的框架,可是这并非一件坏事,其它框架可能遇到的痛点,意味着它们更应更容易被解决。git
一个简约的测试库,AVA 它的优点是 JavaScript 的异步特性和并发运行测试, 这反过来提升了性能。angularjs
我对 AVA 的见解es6
Ava “最有见地的” 是极简方法, 还有他不是占有全局环境的,这让他在个人小本子上得到很高的分数。简单的 API 让测试更清晰。在你选择 JavaScript 单元测试框架的时候,AVA 测试库你是绝对应该尝试的。github
这是在这份框架列表上最小的一个框架,Tape 是最直接开门见山的,提供最基础的功能。
我对 Tape 的见解
Tape 包含更底层,比 AVA 功能更少的 API,并以此为傲。Tape 让全部事情变得简单,只给你所须要的东西。这就是为何 Tape 在个人小本子上有着高分数而且是最好的 JavaScript 单元测试框架之一,它让你更专一于产品而不是工具的选择。
做为能够说是使用最多的库,Mocha 是一个灵活的库,提供给开发者的只有一个基础测试结构。而后其它功能性的功能如 assertions, spies,mocks,和像它们同样的其它功能须要引用添加其它库/插件来完成。
include
或者请求它在每一个文件中。缺点是不管如何那些插件仍是要你使用 require
导入到里面,这会致使不一致,若是你像我同样是个 OCD (译者注:强迫症患者) 它最终会把你弄疯的!我对 Mocha 的见解
可扩展性和数种不一样配置 Mocha 的方式另我印象深入。必须去学习 Mocha,而后也必须去学习你选择的 assertion 库这的确吓到了我很多。灵活性在于它的 assertions,spies 和 mocks 带给它的高收益。
被 Facebook 和各类 React 应用推荐和使用,Jest 获得了很好的支持。Jest 也被发现是一个很是快速的测试库在平行测试报告中。
我对 Jest 的见解
在全局变量是一个缺点,Jest 是一个不断发展功能强大的库。它有不少易于理解的文档帮助学习,而且支持各类不一样环境,当构建项目的时候这些环境都显示很棒。
在我研究了一些不一样的框架以后,我得出一个结论,框架并不是都是非黑即白的。
大部分框架最终都会(Mocha 除外)在一天结束的时候提供给你你所须要的东西,这是一个测试环境同确保给出的 X -> Y 总回被返回的机制,有几个会简单的会给你更多 “华而不实的东西。”
你在选择他们的时候你本身应该充满自信,而个人选择取决于你和你特定项目想要的和须要的。
我但愿这将在你选择你的 JavaScript 单元测试框架时有所帮助。若是你但愿我还看一下其它 JavaScript 单元测试框,在评论中让我知道!我会将它们稍后加到列表中。
掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 Android、iOS、前端、后端、区块链、产品、设计、人工智能等领域,想要查看更多优质译文请持续关注 掘金翻译计划、官方微博、知乎专栏。