资讯专栏INFORMATION COLUMN

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

Forelax / 1371人阅读

摘要:不论你是在写浏览器端还是后端的,总存在那么一个问题我该使用什么单元测试库去确保我的代码如预期的运行呢总是有那么一些流行的框架可供选择。在中仍然流行,并且拥有来自许多地方性的支持。如果你的测试使用它,直到调用了才能通过。

不论你是在写浏览器端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服务器和其它插件的支持

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

高扩展性

轻而易举的进行异步测试

缺点

较新的领域,部分领域缺少支持

原文链接

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/87816.html

相关文章

  • 关于前端开发谈谈单元测试

    摘要:很快我发现有一个误区,许多人认为单元测试必须是一个集中运行所有单元的测试,并一目了然。许多人认为单元测试,甚至整个测试都是在编码结束后的一道工序,而修复也不过是在做垃圾掩埋一类的工作。 单元测试Unit Test 很早就知道单元测试这样一个概念,但直到几个月前,我真正开始接触和使用它。究竟什么是单元测试?我想也许很多使用了很久的人也不一定能描述的十分清楚,所以写了这篇文章来尝试描述它...

    0x584a 评论0 收藏0
  • Javascript CI篇(2)- Karma 基础学习

    摘要:核心功能就是启动一个服务并监听项目文件改变,文件改变后再刷新服务器。 Karma 简介 Karma是Testacular的新名字,在2012年google开源了Testacular,2013年Testacular改名为Karma。Karma是一个让人感到非常神秘的名字,表示佛教中的缘分,因果报应,比Cassandra这种名字更让人猜不透! Karma是一个基于Node.js的JavaS...

    Ku_Andrew 评论0 收藏0
  • 前端单元测试初探

    摘要:本文只讨论单测的范畴,对集成测试有兴趣的话,可以看下的集成测试代码。前端单测现状测试本质上就是假定一个输入,然后判断得到预期的输出。 原文发于我的博客:https://github.com/hwen/blogS... 要不要写单测? 关于这个 cnode 上就有个很有意思的讨论 做个调查,你的 Node 应用有写单测吗? 看完这个应该会有结论?如果没有,就回帖跟别人探讨下~ 测试 测试...

    isLishude 评论0 收藏0
  • 你的第一个AngularJS应用--教程二:基架、建立和测试的工具

    摘要:包括脚手架依赖管理准备测试包括单元测试和端到端测试。我们用来开发的工具有。是一个工具集,包含个核心组件,,和脚手架工具。当你正在做自己的一个项目时,使用哪些模块将取决于你自己。这个目录当然是测试文件。 介绍 有很多可用的工具可以帮助你开发AngularJS 应用,那些非常复杂的框架不在我的讨论范围之中,这也是我开始这系列教程的原因。 在第一部分,我们掌握了AngularJS框架的基本...

    k00baa 评论0 收藏0
  • 一个靠谱的前端开源项目需要什么

    摘要:一个靠谱的应该包含以下几部分言简意赅的项目介绍你的项目解决了什么核心问题,有哪些令人心动的特性。除了在中提到遵循的开源协议外,一个靠谱的开源项目还会将该开源协议的内容文档放在自己的项目下方。 0. 前言 写前端代码一段时间之后,你可能会萌生做一个开源项目的想法,一方面将自己的好点子分享出去让更多的人受益,另一方面也可以在社区贡献的环境下学到更多的东西从而快速成长。但是开源项目也有开源项...

    hiyayiji 评论0 收藏0

发表评论

0条评论

Forelax

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<