测试框架mocha简易教程
mocha 是 JavaScript 的一个单元测试框架,既可以在浏览器环境中运行,也可以在 node.js 环境下运行。我们只需要编写测试用例,mocha 会将测试自动运行并给出测试结果。
1.安装
-
安装 nodejs
-
安装 npm 模块
在安装完成 nodejs 与 npm 之后,接着安装 mocha 模块:
$ install --global mocha # 在全局环境下安装mocha
实际上可以不在全局环境下安装 mocha ,但为了方便后期单元测试,全局环境会比较方便。
以下均以测试 add.js 文件作为例子说明
//add.js
function add(x, y) {
return x + y;
}
2.搭建项目目录
为了方便管理测试文件,简单的搭建一个项目目录结构。简单来说,就是把测试文件和待测试文件分门别类一下,然后把测试文件统一命名为 ’ 测试文件名 ‘.test.js ,有利于后期测试人员的测试操作。其项目目录如下:
+- scr file
-- add.js
+- test file
-- add.test.js
-- package.json
3.测试脚本编写
//add.test.js
var add = require("../src/add"); // 引入 add 模块 注意路径为相对路径
var assert = require("assert"); // 引入内置的 assert 模块
describe("add函数的测试", function() {
it("1加1等于2", function(){
assert.equal(2, add(1, 1));//使用 assert 模块中的 equal() 进行测试,也可使用其他函数
});
});
测试脚本说明:
测试脚本可以包括一个或多个describe
块,每个describe
块可以包括一个或多个it
块。
describe
块称为"测试套件"(test suite),表示一组相关的测试。它是一个函数,第一个参数是测试套件的名称("add函数的测试"),第二个参数是一个实际执行的函数。describe
是可以任意嵌套的。
it
块称为"测试用例"(test case),表示一个单独的测试,是测试的最小单位。它也是一个函数,第一个参数是测试用例的名称("1 add 1 应该等于 2"),第二个参数是一个实际执行的函数。
我们可以同时编写多个测试来测试不同的数据输入,并使用 assert
判断输出是否和我们预期结果相等。
4.测试脚本的运行
使用命令 mocha add.test.js
就可以得到测试脚本的测试效果了,如下:
$ mocha add.test.js
add函数的测试
✓ 1 add 1 应该等于 2
1 passing (8ms)
运行结果说明:该测试脚本通过测试,共一个测试用例通过,使用 8ms。
当然你也可以一次性测试多个测试脚本,即在 mocha f1.test.js f2.test.js ...
mocha 模块会自动运行该目录下的测试脚本,这也是为什么要把测试脚本放在同一个文件夹下的原因之一。
我们还可以生成 html 和 json 文件,提高测试结果的可读性。
$ npm install --save-dev mochawesome
$ mocha add.test.js --reporter mochawesome
如下图(图片转载于 http://www.ruanyifeng.com/blog/2015/12/a-mocha-tutorial-of-examples.html):
5.补充说明
mocha 的功能不仅仅止步于上述所说的简单功能,他其实还可以使异步测试变得简单有趣。Mocha测试连续运行,允许灵活和准确的报告,同时将未捕获的异常映射到正确的测试用例。
具体可参考 mocha 中文文档:https://mochajs.cn/