18 January 2016
号外号外:我的新书《React状态管理与同构实战》出版啦!!!快点我查看
号外号外:美团招聘前端啦!地点:北京!!!快点我查看
号外号外:一组小而美的JavaScript迷你库!!!快点我查看

最近(Jerry Zou)提议将data.js的单元测试工具替换为mocha(原来的是qunit),并且主导进行了整个过程,感谢社区,让我有动力了解这个优秀的工具。

data.js 是带有消息通知的数据中心,我称其为会说话的数据。旨在让编程变得简单,世界变得美好

本文将记录一些学习的笔记和使用过程中遇到的问题。

关于

我理解mocha是一个测试框架,特点是支持node和浏览器端,断言工具自由化,并有很多扩展。

从前用qunit做测试,node需要用nodeunit,需要维护两套测试代码,非常不方便,有了mocha后就可以只维护一套了。

断言

mocha只是一个测试框架,只提供了测试套件,具体的断言工具还需要在挑选,比较流行的是chai,chai有很多选择,可以选择tdd,bdd,除此之外你还可以在这里挑选更多的断言工具。

我们开始使用的是chai,后来发现在ie9一下不能run起来,就只能放弃了,换成了expect.js

安装

全局安装mocha

npm install -g mocha@~2.3.4 # 安装mocha

本地安装

npm install -g mocha@~2.3.4 --save-dev

安装expect.js

npm install -g expect.js@~0.3.1 --save-dev

运行测试

写好单元测试后运行下面的命令运行测试:

mocha test

总结

代码例子可以查看data.js,整体下来感觉mocha还是很赞的,用起来也比较舒服,回头有时间把项目的测试框架全部换成mocha,o(∩_∩)o 哈哈。

我相信你看完我的笔记肯定学不会mocha,没关系看看参考资料的内容吧,我也是看着这个学习的。

参考资料

原文网址:http://yanhaijing.com/tool/2016/01/18/my-mocha/

微信公众号:颜海镜
关注微信公众号 颜海镜
微信支付二维码
赞赏支持 微信扫一扫


前端小武

前端小武 on 18 Jan 2016

大家的“抹茶”

liz

liz on 24 Feb 2016

mocha官方示例中多数用的should,为啥国内大多数教程用的是expect

颜海镜

颜海镜 on 25 Feb 2016

开始我用的chai,发现兼容性有问题,should和expect不是一种风格吧

liz

liz on 25 Feb 2016

「require('should')」和「require('chai').expect」。Mocha官方网站上的「Examples」多用「should」,而很多中文教程多用「chai」

颜海镜

颜海镜 on 26 Feb 2016

chai在ie上有兼容性问题,我用的expect.js,可能一开始写中文教程的自己的选择吧,后来的人就都是抄袭的