宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

测试框架mocha简易教程

mocha 是 JavaScript 的一个单元测试框架,既可以在浏览器环境中运行,也可以在 node.js 环境下运行。我们只需要编写测试用例,mocha 会将测试自动运行并给出测试结果。

1.安装

安装 nodejs

参考资料:https://www.jianshu.com/p/13f45e24b1de

安装 npm 模块

参考资料:http://caibaojian.com/npm/all.html

在安装完成 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):

测试框架mocha简易教程-冯金伟博客园

5.补充说明

mocha 的功能不仅仅止步于上述所说的简单功能,他其实还可以使异步测试变得简单有趣。Mocha测试连续运行,允许灵活和准确的报告,同时将未捕获的异常映射到正确的测试用例。

具体可参考 mocha 中文文档:https://mochajs.cn/