node JS 中 单元测试的应用

一、单元测试
  1. 单元测试,如下所示:
  • 单个功能或接口,给定输入,得到输出,看输出是否符合要求
  • 需手动编写用例代码,然后统一执行
  • 能一次性执行所有单测,短时间内验证所有功能是否正常
  1. 通过 npm i jest supertest --save 命令下载 jestsupertest

  2. package.json 文件中 scripts 进行配置,如下所示:

"scripts": {
    "start": "node bin/www",
    "dev": "cross-env NODE_ENV=dev ./node_modules/.bin/nodemon --inspect=9229 bin/www",
    "prd": "cross-env NODE_ENV=production pm2 start bin/www",
    "lint": "eslint --ext .js ./src",
    "test": "cross-env NODE_ENV=test jest --runInBand --forceExit --colors"
  },
  1. node JS 项目中新建 test 文件夹,新建 demo.test.js,使用 expect 断言,代码如下所示:
/**
 * test  demo
 */

function sum (a,b) {
  return a + b
}

test('10 + 20 应该等于 30', () => {
  const res = sum(10,20)
  expect(res).toBe(30)
})


  1. 通过 npm run test 命令进行单元测试,如下所示

  2. test 文件夹中新建 server.jsjson.test.js 文件,进行 http 单元测试,代码如下所示:

  • server.js,如下所示:
/**
 *   jest server
 */

const request = require('supertest')
const server = require('../src/app').callback()

module.exports = request(server)

  • json.test.js,如下所示:
/**
 * json test
 */

const server = require('./server')

test('json 接口返回数据格式正确', async () => {
  const res = await server.get('/json')
  expect(res.body).toEqual({
    title: 'koa2 json'
  })
  expect(res.body.title).toBe('koa2 json')
})

  • index.js,如下所示:
router.get('/json', async (ctx, next) => {
  
  ctx.body = {
    title: 'koa2 json'
  }
})
  1. 通过 npm run test 命令进行单元测试,如下所示:

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值