不管你是在写浏览器端javascript照样后端的nodejs,总存在那末一个题目:我该运用什么单元测试库去确保我的代码如预期的运转呢?总是有那末一些盛行的框架可供挑选。假如你正在斟酌Qunit、Jasmine或许Mocha,那末正好我这有一些他们的优瑕玷信息引见,你可以感兴趣。
Qunit
qUnit是我列举出中最老的一个框架,08年正式宣布。因为时候缘由,跟着时候积累了一些用户。在Jquery中依然盛行,而且具有来自很多地方性的支撑。
它生长的怎样呢?真的不让人惬意。
特性
大批的支撑,从Q&A到CI服务器支撑
瑕玷
语法不流通
设置使人头疼,必需延续保护
引入第三库比较难题
异步测试难题
No baked-in headless run support(待译)
Jasmine
Jasmine是轻微新一点的框架,于qUnit宣布后的2年2010年宣布。这是一个有充足时候生长的框架,但是仍要进修其他javascript框架。它的初志是易于装置和适用于任何场景。大多数场景下,它的运转须要Karma或Chutzpah,除了一些刊行版本(如jasmine-node npm)有内建的runner。
它的远景怎样呢?关于你想要的大多数场景来讲,它是非常棒的。异步代码是重要的题目。
特性
关于node来讲经由过程jasmine-node是很好装置的
Headless running out of the box(待译)
内置流通美丽的语法,圆满兼容别的测试库
有很多CI服务器(如TeamCityp,CodeShip等)和一些自身不支撑插件的服务器支撑
可描述性的BDD类型
瑕玷
异步测试有些贫苦
一切测试文件都有个确实的后缀(默许*spec.js)
Mocha
Mocha专为nodeJS的模块构建,2012宣布严重版本。它的API与Jasmine非常像,多了一些语法糖去适用于更多的场景,如BDD。内建有runner,所以你不必费心runner了。与jasmine差别,它对异步代码的测试有很好的支撑,经由过程挪用done函数。假如你的测试运用它,直到done挪用了test才经由过程。假如没有挪用它,当test要领的代码实行完test才经由过程。
我对它的印象是,非常合适我!
特性
易于装置
Headless running out of the box
许可任何可以抛出失利非常测试库的运用
部份CI服务器和别的插件的支撑
功能上更多是面向行动驱动开辟或许行动面向测试驱动开辟
高扩展性
易如反掌的举行异步测试
瑕玷
较新的范畴,部份范畴缺乏支撑