Skip to content

Latest commit

 

History

History
65 lines (40 loc) · 1.64 KB

单元测试.md

File metadata and controls

65 lines (40 loc) · 1.64 KB

测试是一个项目周期里必不可少的环节,开发者在开发过程中也是无时无刻进行“人工测试”, 如果每次修改一点代码,都要牵一发动全身都要手动测试关联接口,这样子是禁锢了生产力。 为了解放大部分测试生产力,相关的测试框架应运而生,比较出名的有mocha,karma,jasmine等。 虽然框架繁多,但是使用起来都是大同小异。

准备工作

安装测试相关框架

npm install --save-dev mocha chai supertest

mocha 模块是测试框架

chai 模块是用来进行测试结果断言库,比如一个判断 1 + 1 是否等于 2

supertest 模块是http请求测试库,用来请求API接口

用例详解

服务入口加载

如果要对一个服务的API接口,进行单元测试,要用supertest加载服务的入口文件

const supertest = require('supertest')
const request = supertest( app.listen() )

测试套件、用例

describe()描述的是一个测试套件

嵌套在describe()的it()是对接口进行自动化测试的测试用例

一个describe()可以包含多个it()

describe( '开始测试demo的GET请求', ( ) => {
  it('测试/getString.json请求', () => {
      // TODO ...
  })
})

supertest封装服务request,是用来请求接口

chai.expect使用来判断测试结果是否与预期一样

chai 断言有很多种方法,这里只是用了数据类型断言

[demo] test-unit is starting at port 3000


  开始测试demo的GET请求
     测试/getString.json请求
     测试/getNumber.json请求

  开始测试demo的POST请求
     测试/postData.json请求


  3 passing (28ms)