Uno, prueba unitaria
- 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
-
Por
npm i jest supertest --save
comando para descargarjest
ysupertest
-
En la configuración del
package.json
archivoscripts
, 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"
},
- En el
node JS
proyecto, una nuevatest
carpeta, la nuevademo.test.js
, el uso deexpect
aserciones, 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)
})
-
Por
npm run test
prueba unitaria, como se muestra en el comando -
En la
test
carpeta newserver.js
andjson.test.js
files,http
unit 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'
}
})
- Por
npm run test
comando de prueba unitaria de la siguiente manera: