这篇是前段时间总结给自己备忘的,要用到的工具实在太多,没法一一记住。
个人感觉,作为一个测试的工具,只要会用就好了。
所以这里稍微做了一些修改,简单介绍一下常用的写法和命令,其次将之前的一些示例改成 javascript 版本,方便没有 coffee 基础的同学浏览。
介绍
mocha 是一个拥有丰富功能的 javascript 测试框架,可以用于 nodejs 和浏览器。支持同步/异步测试用例,有多种报告形式。
官网介绍了很多的特性,个人感觉实用的就几点:
一个是 nodejs 和浏览器都可以用,不用再记那么多奇怪的 api 和写法了。
其次是编写同步/异步测试用例非常简单。
安装
1 2 |
$ npm install mocha -g |
成功安装后就可以使用 mocha
命令了。
使用
运行./test/
目录所有 js
1 2 |
$ mocha |
指定 js 文件
1 2 |
$ mocha xxx.js |
监听文件变化
1 2 |
$ mocha xxx.js -w |
指定 coffee 编译
for coffescript 1.6
1 2 |
$ mocha --compilers coffee:coffee-script test.coffee |
for coffeescript 1.7+
1 2 |
$ mocha --compilers coffee:coffee-script/register test.coffee |
浏览器的使用
1 2 |
$ mocha init <path> |
指定一个目录,初始化一个用于浏览器的测试目录。执行后会在该目录生成 index.html
、mocha.js
、mocha.css
和一个空白的 test.js
,可以直接在 test.js
中添加测试用例。
当然,也可以不敲命令直接复制引用 mocha.js
到 html。
编写用例
常用的断言库都可以运行的很好。以下列出几个:
should.js
BDD style shown throughout these docs.chai
expect() assert() and should style assertionsexpect.js
expect() style assertionsbetter-assert
c-style self.documenting assert()
个人一般用 nodejs 自带的 assert
(方便不用安装)和 should.js
(功能强大很好用)
同步代码
1 2 3 4 5 6 7 8 9 10 |
<span class="keyword">require</span>(<span class="string">'should'</span>); describe(<span class="string">'测试数组Array'</span>,<span class="keyword">function</span>(){ describe(<span class="string">'测试#indexOf方法'</span>,<span class="keyword">function</span>(){ it(<span class="string">'不存在的元素会返回-1'</span>,<span class="keyword">function</span>(){ [<span class="number">1</span>,<span class="number">2</span>,<span class="number">3</span>].indexOf(<span class="number">5</span>).shou |