译:你该使用什么单元测试,Qunit、Jasmine仍是Mocha?

不论你是在写浏览器端javascript仍是后端的nodejs,总存在那么一个问题:我该使用什么单元测试库去确保个人代码如预期的运行呢?老是有那么一些流行的框架可供选择。若是你正在考虑Qunit、Jasmine或者Mocha,那么刚好我这有一些他们的优缺点信息介绍,你可能感兴趣。javascript

Qunit

qUnit是我列举出中最老的一个框架,08年正式发布。因为时间缘由,随着时间积累了一些用户。在Jquery中仍然流行,而且拥有来自许多地方性的支持。java

它发展的如何呢?真的不让人满意。node

特色npm

大量的支持,从Q&A到CI服务器支持后端

缺点浏览器

  1. 语法不流畅服务器

  2. 配置使人头疼,必须持续维护框架

  3. 引入第三库比较困难less

  4. 异步测试困难异步

  5. No baked-in headless run support(待译)

Jasmine

Jasmine是稍微新一点的框架,于qUnit发布后的2年2010年发布。这是一个有足够时间成长的框架,然而仍要学习其余javascript框架。它的初衷是易于安装和适用于任何场景。大多数场景下,它的运行须要Karma或Chutzpah,除了一些发行版本(如jasmine-node npm)有内建的runner。

它的前景如何呢?对于你想要的大多数场景来讲,它是很是棒的。异步代码是主要的问题。

特色

  1. 对于node来讲经过jasmine-node是很好安装的

  2. Headless running out of the box(待译)

  3. 内置流畅漂亮的语法,完美兼容其它测试库

  4. 有许多CI服务器(如TeamCityp,CodeShip等)和一些自己不支持插件的服务器支持

  5. 可描述性的BDD范例

缺点

  1. 异步测试有些麻烦

  2. 全部测试文件都有个确切的后缀(默认*spec.js)

Mocha

Mocha专为nodeJS的模块构建,2012发布重大版本。它的API与Jasmine很是像,多了一些语法糖去适用于更多的场景,如BDD。内建有runner,因此你不用操心runner了。与jasmine不一样,它对异步代码的测试有很好的支持,经过调用done函数。若是你的测试使用它,直到done调用了test才能经过。若是没有调用它,当test方法的代码执行完test才能经过。

我对它的印象是,很是适合我!

特色

  1. 易于安装

  2. Headless running out of the box

  3. 容许任何可以抛出失败异常测试库的使用

  4. 部分CI服务器和其它插件的支持

  5. 功能上更可能是面向行为驱动开发或者行为面向测试驱动开发

  6. 高扩展性

  7. 垂手可得的进行异步测试

缺点

  1. 较新的领域,部分领域缺乏支持

原文连接

相关文章
相关标签/搜索