Nodejs Mocha测试学习

Mocha单元测试实战
本文介绍如何使用Mocha进行Node.js程序的单元测试,包括基本概念、测试用例管理及异步测试等内容,并通过示例展示如何动态生成测试用例。

参考大神阮一峰的文章《测试框架 Mocha 实例教程

目前在使用Nodejs,但写完的程序很容易出错,那怎么办?需要引入单元测试去做基础的测试

目前Nodejs用来做单元测试的工具接触的不多,现在只接触到Mocha,它是用来做单元测试的最好的工具之一。

关于Mocha的基础教程,可以看一下阮一峰老师的博客:测试框架 Mocha 实例教程

=》基本概念:

describe():测试区块,一个测试区块应该包含一个或多个测试区块,测试区块也是可以多层嵌套的

it():测试用例,一个测试区块中应该包含一个或多个测试用例

=》测试用例钩子:

before():在本区块所有测试用例执行之前执行

after():在本区块所有测试用例执行之后执行

beforeEach():在本区块每个测试用例之前执行

afterEach():在本区块每个测试用例之后执行

=》断言库:

chai:Mocha本身没有断言库,chai可以作为Mocha的断言库

chai-as-promise:目前的方法很多都是Promise的方式,这个断言库可以支持到Promise

=》测试用例管理:

only():测试区块和测试用例都支持only方法,如果某个测试区块或测试用例调用了only方法,则在运行单元测试时只运行该测试区块或测试用例

skip():测试区块和测试用例都支持skip方法,如果某个测试区块或测试用例调用了skip方法,则在支行单元测试时会跳过该测试区块或测试用例

only()和skip()共存的时候,only()会把skip()的作用给忽略掉

=》异步测试:

在测试方法异步完成后,调用done()方法,一个it测试实例中只能有一个done()方法

=》重新运行实例

在运行测试实例时,我们可以让一个实例重新执行一定的次数,在describe()和it()中加入this.retries(4);,即可执行4次,但是Mocha不推荐这样的做法

=》动太生成测试用例

var assert = require('chai').assert;

function add() {
    return Array.prototype.slice.call(arguments).reduce(function (prev, curr) {
        return prev + curr;
    }, 0);
}

describe('add()', function () {
    var tests = [
        { args: [1, 2], expected: 3 },
        { args: [1, 2, 3], expected: 6 }
    ];

    tests.forEach(function (test) {
        it('test adds ' + test.args.length + ' args', function () {
            var res = add.apply(null, test.args);
            assert.equal(res, test.expected);
        });
    });
});

 

转载于:https://www.cnblogs.com/weschen/p/7151582.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值