node中的断言(assert 模块)
assert: Node 原生支持的断言模块 支持 TDD
node.js 测试用例中基本语法, 主要有以下4个基本语句:
- describe: 定义一个测试套件
- it:定义一个测试用例
- expect:断言的判断条件
- toEqual:断言的比较结果
const assert = require('assert')
const sum = require('./hello')
assert.ok(sum(12)); //测试 value 是否为真值。它等同于 assert.equal(!!value, true, message)。
assert.equal(sum(1,1), 1); //测试 sum(1,1) 是否==1
assert.strictEqual(sum(),0) //测试 sum() 是否===0
mocha安装与使用介绍
优质文档:https://www.ruanyifeng.com/blog/2015/12/a-mocha-tutorial-of-examples.html
mocha安装
Mocha
的作用是运行测试脚本,首先必须学会写测试脚本。所谓"测试脚本",就是用来测试源码的脚本。
npm install --global mocha 全局安装
通常,测试脚本与所要测试的源码脚本同名,但是后缀名为.test.js
(表示测试)或者.spec.js
(表示规格)。比如,add.js的测试脚本名字就是add.test.js。
mocha使用
mocha测试用例钩子
describe('hooks', function() {
before(function() {
// 在本区块的所有测试用例之前执行
});
after(function() {
// 在本区块的所有测试用例之后执行
});
beforeEach(function() {
// 在本区块的每个测试用例之前执行
});
afterEach(function() {
// 在本区块的每个测试用例之后执行
});
// test cases
});
搭配superTest测试接口
// 测试接口
const request = require("supertest")
const assert = require("assert")
let url = "http://127.0.0.1:8000"
describe('接口验证', function () {
beforeEach(function () {
console.log('开始测试');
})
it('test接口测试', function (done) {
// 之所以这个测试的 function 要接受一个 done 函数,是因为我们的测试内容
// 涉及了异步调用,而 mocha 是无法感知异步调用完成的。所以我们主动接受它提供
// 的 done 函数,在测试完毕时,自行调用一下,以示结束。
request(url)
// .query 方法用来传 querystring,.send 方法用来传 body。
// 它们都可以传 Object 对象进去。
.get('/test')
.expect(200)
.end(function (err, res) {
console.log(res.body);//拿到响应内容
console.log(res.text);//字符串化
done(err)
})
})
})