Um, teste de unidade
- 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
-
Por
npm i jest supertest --save
comando para baixarjest
esupertest
-
Na configuração do
package.json
arquivoscripts
, 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"
},
- No
node JS
projeto, uma novatest
pasta, a novademo.test.js
, o uso deexpect
asserçõ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)
})
-
Por
npm run test
teste de unidade, conforme o comando mostrado -
Na
test
pasta novoserver.js
ejson.test.js
arquivos,http
teste 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'
}
})
- Por
npm run test
comando de teste de unidade da seguinte forma: