Aplicación de pruebas unitarias en el nodo JS

Uno, prueba unitaria

  1. La prueba unitaria es la siguiente:
  • Función o interfaz única, entrada dada, obtener salida, ver si la salida cumple con los requisitos
  • Necesita escribir manualmente el código del caso de uso y luego ejecutarlo de manera uniforme
  • Capaz de ejecutar todas las pruebas individuales a la vez y verificar si todas las funciones son normales en poco tiempo
  1. Por npm i jest supertest --savecomando para descargar jestysupertest

  2. En la configuración del package.jsonarchivo scripts, como se muestra a continuación:

"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. En el node JSproyecto, una nueva testcarpeta, la nueva demo.test.js, el uso de expectaserciones, el código es el siguiente:
/**
 * test  demo
 */

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

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


  1. Por npm run testprueba unitaria, como se muestra en el comando

  2. En la testcarpeta new server.jsand json.test.jsfiles, httpunit testing, codifique de la siguiente manera:

  • server.js,Como sigue:
/**
 *   jest server
 */

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

module.exports = request(server)

  • json.test.js,Como sigue:
/**
 * 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,Como sigue:
router.get('/json', async (ctx, next) => {
    
    
  
  ctx.body = {
    
    
    title: 'koa2 json'
  }
})
  1. Por npm run testcomando de prueba unitaria de la siguiente manera:

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_42614080/article/details/113203219
Recomendado
Clasificación