资讯专栏INFORMATION COLUMN

mocha笔记

xiaotianyi / 1617人阅读

摘要:笔记测试脚本默认加载目录下的,也可以通过参数指定需要运行的测试文件,如运行目录下的。的测试脚本表示一个测试套件表示一个测试用例上面使用的是的断言库,也可以安装其他断言库,如参数允许在目录下通过文件,进行参数配置。

Mocha笔记 测试脚本

mocha默认加载test目录下的test.js,也可以通过参数指定需要运行的测试文件,如运行test目录下的test.math.js。

mocha test/test.math.js

mocha的测试脚本

describe("test of math", function () {
    it("should return 2 when 1 + 1", function () {
        assert.equal(math.add(1, 1), 2);
    });
});

describe: 表示一个测试套件

it: 表示一个测试用例

上面使用的是nodejs的assert断言库,也可以安装其他断言库,如

should.js

expect.js

chai - expect()

better-assert

unexpected

mocha参数

mocha允许在test目录下通过mocha.opts文件,进行参数配置。
mocha.opts

--timeout 5000
--reporter mochawesome
测试报表

控制台显示的测试结果:

test of math
    ✓ should return 2 when 1 + 1
    ✓ use expect assertion: should return 2 when 1 + 1
    ✓ asyncAdd, should return 2 when 1 + 1 (2004ms)
    - a pending test


  3 passing (2s)
  1 pending

--reporter参数可以配置使用的测试报表名称,如spec, dot, nyan, mochawesome

mochawesome需要安装

npm install --save-dev mochawesome

报表生成在mochawesome-report目录下,为html文件。

代码覆盖率测试

Istanbul

npm install --save-dev nyc

在mocha命令前增加nyc

nyc mocha test/test.math.js

运行改命令后:

----------|----------|----------|----------|----------|-------------------|
File      |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |
----------|----------|----------|----------|----------|-------------------|
All files |      100 |      100 |      100 |      100 |                   |
 math.js  |      100 |      100 |      100 |      100 |                   |
----------|----------|----------|----------|----------|-------------------|

如需要生成代码覆盖率的报告,可以修改命令为:

nyc --reporter=html mocha test/test.math.js

运行命令后,覆盖率报表会生成在coverage目录下。

test.math.js
var assert = require("assert");
var expect = require("expect.js");
var Math = require("../math");

var math;

describe("test of math", function () {
    //hooks
    before(function () {
        // runs before all tests in this block
        math = new Math();
    });

    after(function () {
        // runs after all tests in this block
    });

    beforeEach(function () {
        // runs before each test in this block
    });

    afterEach(function () {
        // runs after each test in this block
    });

    it("should return 2 when 1 + 1", function () {
        assert.equal(math.add(1, 1), 2);
    });

    it("should return 1 when 1 * 1", function () {
        assert.equal(math.mutiply(1, 1), 1);
    });

    it("should return max value 9 of [1,3,6,9,0]", function () {
        assert.equal(math.max([1, 3, 6, 9, 0]), 9);
    });

    it("should return 2 when 1 + 1", function () {
        assert.equal(math.add(1, 1), 2);
    });

    it("use expect assertion: should return 2 when 1 + 1", function () {
        expect(math.add(1, 1)).to.be(2);
    });

    it("asyncAdd, should return 2 when 1 + 1", function (done) {
        math.asyncAdd(1, 1).then(function (result) {
            assert.equal(result, 2);
            done();
        }, function (err) {
            assert.fail(err);
            done();
        });
    });

    it("a pending test");
});

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/8810.html

相关文章

  • mocha笔记

    摘要:笔记测试脚本默认加载目录下的,也可以通过参数指定需要运行的测试文件,如运行目录下的。的测试脚本表示一个测试套件表示一个测试用例上面使用的是的断言库,也可以安装其他断言库,如参数允许在目录下通过文件,进行参数配置。 Mocha笔记 测试脚本 mocha默认加载test目录下的test.js,也可以通过参数指定需要运行的测试文件,如运行test目录下的test.math.js。 mocha...

    GitCafe 评论0 收藏0
  • MongoDB学习笔记

    背景 学习MongoDB,并做笔记整理,以便于用到时查看。 MogoDB NoSQL Database(JS) 使用方便,想存就存,相取就取 是MEAN中的M(数据) 安装 https://www.mongodb.com/downl... 选择相应系统安装包 安装mongoose 创建一个文件夹,并npm init --yes,创建package.js npm install mongoos...

    April 评论0 收藏0
  • 前端单元测试(未完。。)

    摘要:基础知识作用为提供浏览器测试环境,为真正测试框架,为断言库测试用例基础块称为测试套件,表示一组相关的测试。它也是一个函数,第一个参数是测试用例的名称,第二个参数是一个实际执行的函数。 基础知识 karma作用为提供浏览器测试环境,mocha为真正测试框架,chai为断言库 测试用例基础 describe块称为测试套件(test suite),表示一组相关的测试。它是一个函数,第一个...

    ACb0y 评论0 收藏0
  • [笔记]1.Karma前端TDD试水

    摘要:起博主是电信行业的码农,在工作单位也搞搞单元测试和了什么。目前对技术很感兴趣,尝试新的领域里面也试试看这次要用的方式要实现一个简单画图板功能,支持和。配置文件里面主要就是一个对象,根据注释提示调整下即可。 起 博主是电信行业的码农,在工作单位也搞搞单元测试和TDD了什么。目前对Web技术很感兴趣,尝试新的领域里面也试试看TDD. 这次要用TDD的方式要实现一个简单画图板功能,支持C...

    894974231 评论0 收藏0
  • mocha

    摘要:抹茶是一款测试框架,支持在和浏览器端运行。只要程序抛出一个错误,就会认为测试不通过。使用内置的断言库断言抛出一个如果参数是一个则会抛出这个。并且根据的状态来决定测试是否通过。 这篇文章百分之99都是照着mocha官网的内容来写的。就是个扫盲文,如果你想获得关于mocha更深层次不为人知的内容,还是别浪费你宝贵的十几分钟了,马上叉掉。不为啥的,我就做个笔记,方便以后复习。 mocha(抹...

    ruicbAndroid 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<