node单元测试

简介: node单元测试基本介绍与使用

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)

           })

   })

})

目录
相关文章
|
4月前
|
前端开发 测试技术
Node 单元测试
Node 单元测试
|
30天前
|
前端开发 JavaScript 内存技术
Node-前端模块化
Node-前端模块化
21 0
Node-前端模块化
|
6月前
|
JavaScript 前端开发 架构师
Node框架 【Egg-企业级框架】
Node框架 【Egg-企业级框架】
160 0
|
7月前
|
JavaScript 前端开发
node如何编写前端工具链
node如何编写前端工具链
node如何编写前端工具链
|
4月前
|
JavaScript 前端开发
【Node学习】—Node.js中模块化开发的规范
【Node学习】—Node.js中模块化开发的规范
|
11月前
|
数据采集 JavaScript 前端开发
Node.js 有哪些可以运用的测试框架?
Node.js 有哪些可以运用的测试框架?
118 0
|
JavaScript 前端开发 C++
Node.js:Jest测试框架测试test代码
Node.js:Jest测试框架测试test代码
136 0
Node.js:Jest测试框架测试test代码
node22-nodejs模块化的开发规范
node22-nodejs模块化的开发规范
68 0
node22-nodejs模块化的开发规范
node22-nodejs模块化开发
node22-nodejs模块化开发
56 0
node22-nodejs模块化开发
|
JavaScript 测试技术
[Node.js] assert 断言模块单元测试
[Node.js] assert 断言模块单元测试
1762 0