记一次使用mocha做单元测试

栏目: 编程工具 · 发布时间: 6年前

内容简介:我写了一个有向无环图,但是没法验证我写的代码时正确的。所以引入单元测试,选择mocha是因为比较多人用。文档比较全所以在"test": "nyc mocha --require @babel/register -R spec src/test"加上@babel/register

我写了一个有向无环图,但是没法验证我写的代码时正确的。所以引入单元测试,选择mocha是因为比较多人用。文档比较全

参考文档

使用过程

  • 安装mocha nyc npm i nyc @babel/register mocha --save-dev

  • 在package.json中的scripts上添加"test": "nyc mocha --require @babel/register -R spec src/test",这样运行npm run test 就能运行test文件夹下的所有测试文件

  • 在test文件夹下新建 IsDAG.test.js文件 (通常,测试脚本与所要测试的源码脚本同名,但是后缀名为.test.js),写测试代码,因为node自带的断言库不好用,所以可以使用chai断言库

  • 写完后运行npm run test发现报错了 import不存在。原因是 mocha是node的构建工具,默认只支持commonJS的模块系统,引入@babel/register "test": "nyc mocha --require @babel/register -R spec src/test"。

所以在"test": "nyc mocha --require @babel/register -R spec src/test"加上@babel/register

import { expect } from 'chai';
import { isDag } from '../index';

// describe块称为"测试套件"(test suite),表示一组相关的测试。它是一个函数,第一个参数是测试套件的名称("加法函数的测试"),第二个参数是一个实际执行的函数。
describe('是否是有向无环图测试', function() {
    // it块称为"测试用例"(test case),表示一个单独的测试,是测试的最小单位。它也是一个函数,第一个参数是测试用例的名称("1 加 1 应该等于 2"),第二个参数是一个实际执行的函数。
    it('是Dag测试', function (done) {
        const graph = [
            {
                source: 1,
                target: 2,
            },{
                source: 1,
                target: 3
            }
        ]
        const result = isDag(graph);
        if(result) {
            // 正确返回done
            done()
        }else {
            // 错误返回错误信息
            done('错误');
        };  
    });

});

在vscode上断点调试

记一次使用mocha做单元测试
  • 选择mocha文件测试
  • 编写配置文件,(如何把nyc命令加进来我就不知道了)
{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Mocha Tests",
            "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha", // mocha的位置
            "args": [ // 运行的命令
                "--require",
                "@babel/register",
                "-R",
                "spec",
                "${workspaceFolder}/src/test" // 测试文件都位置
            ],
            "internalConsoleOptions": "openOnSessionStart"
        }
    ]
}

- 添加断定调试

以上所述就是小编给大家介绍的《记一次使用mocha做单元测试》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入理解Nginx

深入理解Nginx

陶辉 / 机械工业出版社 / 2013-4-15 / 89.00元

本书是阿里巴巴资深Nginx技术专家呕心沥血之作,是作者多年的经验结晶,也是目前市场上唯一一本通过还原Nginx设计思想,剖析Nginx架构来帮助读者快速高效开发HTTP模块的图书。 本书首先通过介绍官方Nginx的基本用法和配置规则,帮助读者了解一般Nginx模块的用法,然后重点介绍如何开发HTTP模块(含HTTP过滤模块)来得到定制的Nginx,其中包括开发一个功能复杂的模块所需要了解的......一起来看看 《深入理解Nginx》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

SHA 加密
SHA 加密

SHA 加密工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具