Aplicação de teste de unidade no nó JS

Um, teste de unidade

  1. O teste de unidade é o seguinte:
  • Função ou interface única, dada entrada, obter saída, ver se a saída atende aos requisitos
  • Precisa escrever manualmente o código do caso de uso e, em seguida, executá-lo uniformemente
  • Capaz de executar todos os testes únicos ao mesmo tempo e verificar se todas as funções estão normais em um curto período de tempo
  1. Por npm i jest supertest --savecomando para baixar jestesupertest

  2. Na configuração do package.jsonarquivo scripts, conforme mostrado abaixo:

"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. No node JSprojeto, uma nova testpasta, a nova demo.test.js, o uso de expectasserções, o código é o seguinte:
/**
 * 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 testteste de unidade, conforme o comando mostrado

  2. Na testpasta novo server.jse json.test.jsarquivos, httpteste de unidade, codifique da seguinte maneira:

  • server.js,Do seguinte modo:
/**
 *   jest server
 */

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

module.exports = request(server)

  • json.test.js,Do seguinte modo:
/**
 * 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,Do seguinte modo:
router.get('/json', async (ctx, next) => {
    
    
  
  ctx.body = {
    
    
    title: 'koa2 json'
  }
})
  1. Por npm run testcomando de teste de unidade da seguinte forma:

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

Acho que você gosta

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