node.js测试html tdd,NodeJs单元测试

本博客简要介绍NodeJs如何进行单元测试

单元测试类型

TDD:测试驱动开发

TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD 是 XP(Extreme Programming)的核心实践。

BDD:行为驱动开发

重点是通过与利益相关者的讨论取得对预期的软件行为的清醒认识。它通过用自然语言书写非程序员可读的测试用例扩展了测试驱动开发方法。行为驱动开发人员使用混合了领域中统一的语言的母语语言来描述他们的代码的目的。

Mocha

测试代码

主要函数

describe:包含需要测试的样例

done:测试完一个样例需要传递done类表明测试样例结束

assert:判断样例是否正确

注意:describe可以嵌套

测试库函数

calc.js

exports.add = function(i, j) {

return i + j;

};

exports.mul = function(i, j) {

return i * j;

};

demo.js

var assert = require('assert');

var calc = require('./calc.js');

describe('Calculator Tests', function() {

describe('Addition Tests', function() {

it('returns 1 + 1 = 2', function(done) {

assert.equal(calc.add(1, 1), 2);

done();

});

it('returns 1 + -1 = 0', function(done) {

assert.equal(calc.add(1, -1), 0);

done();

});

});

describe('Multiplication Tests', function() {

it('returns 2 * 2 = 4', function(done) {

assert.equal(calc.mul(2, 2), 4);

done();

});

it('returns 0 * 4 = 4', function(done) {

assert.equal(calc.mul(2, 2), 4);

done();

});

});

});

cmd

mocha .\demo.js

最终结果

aff9d8f906e8?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

输出结果

测试服务器

后续更新

Istanbul

测试覆盖率

覆盖率说明

语句覆盖(StatementCoverage):度量被测代码中每个可执行语句是否被执行到了

判定覆盖(DecisionCoverage):度量程序中每一个判定的分支是否都被测试到了

条件覆盖(ConditionCoverage):度量判定中的每个子表达式结果true和false是否被测试到了

路径覆盖(PathCoverage):度量了是否函数的每一个分支都被执行了

结合node使用

npm install -g mocha

npm install -g istanbul

npm install --save-dev mocha nyc

为了方便

在package.json中修改:

"scripts": {

"test": "mocha --reporter dot",

"coverage": "nyc --reporter html --reporter text npm test"

}

同时新建一个test文件夹,其中放置所有的测试文件,任意命名就行。

测试样例的正确率

npm test

aff9d8f906e8?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

test

测试代码的覆盖率

npm run coverage

aff9d8f906e8?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

coverage

最后生成一个coverage文件夹,其中包含测试结果的html:

aff9d8f906e8?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

且点击列表中的各项可以查看各个js文件的覆盖情况

aff9d8f906e8?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

calc.js

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值