• 测试框架mocha简易教程


    测试框架mocha简易教程

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

    1.安装

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

  • 相关阅读:
    AngularJS(三)——指令实战及自定义指令
    AngularJS(二)——常见指令以及下拉框实现
    AngularJS(一)理论篇
    【leetcode】8 integer to roman
    【leetcode】7 Roman to Integer
    【leetcode】6 Palindrome Number
    【leetcode】5 atoi
    【leetcode】4 Reverse Ingeger
    【leetcode】3 minstack
    【leetcode】2 数组元素右移
  • 原文地址:https://www.cnblogs.com/huanglong1123/p/13798771.html
Copyright © 2020-2023  润新知