Depuración y prueba de una aplicación Node.js

Al construir un gran proyecto trabajando en equipo, los cambios continuos en el código base lograrán resultados óptimos. Entonces, si alguien escribe código y por eso se rompe una función ya existente, para ese propósito usamos pruebas de software.

Manteniendo su proyecto probado automáticamente tenemos pruebas, cada vez que ejecutamos el proyecto, podemos verificar qué prueba continúa pasando y cuáles no. Las pruebas que no pasan indican que se están realizando algunos cambios en esa sección del código.

Desarrolle una aplicación web simple para implementar pruebas y depuración: en esta aplicación web tenemos tarifas configuradas de acuerdo con varios parámetros y si alguien realiza cambios en las tarifas, debemos probarlos para que cada miembro del equipo sepa que los cambios en la tarifa las tasas han tenido lugar.

Paso 1: Cree una carpeta de proyecto
Descargue todas las dependencias y configure el servidor de Node

npm init
npm install express

Paso 2: agregue su lógica para probarla en un archivo separado en la carpeta raíz.
En este archivo (fareutils.js) almacenamos el código que queremos probar e importaremos las funciones a nuestro archivo de servidor.

// Shows the user rate chart
rate =  {
    fixed: 50,
    minKm: 5,
    perKm: 10,
    freeMin: 15,
    perMin: 2
}
  
// Logic for calculating fare according to ride details
function calcFare(km, min) {
    let fare = rate.fixed
    fare += (km > rate.minKm) ? ((km - rate.minKm) * rate.perKm) : 0
    fare += (min > rate.freeMin) ? ((min - rate.freeMin) * rate.perMin) : 0
    return fare
}
  
// Exports the two functions to server.js
exports = module.exports = {
    rate, calcFare
}

Paso 3: Ahora implemente las pruebas de la lógica anterior, usamos MOCHA y CHAI:

  • Mocha es un marco de prueba JS. Utiliza el método describe para agrupar nuestras pruebas y el método it para ejecutar nuestras pruebas.
  • Chai es una biblioteca de aserciones que se asegura de que nuestros valores sean similares porque chai puede equiparar objetos y arrays, lo que no es fácil de hacer con JavaScript simple. Realiza una comprobación de igualdad profunda que comprueba y también equipara el contenido de los objetos.
    npm install mocha chai
    

Paso 4: Cree una nueva carpeta llamada test en el directorio raíz:
crearemos un archivo (fareutils.test.js) en el que escribiremos nuestros casos de prueba mocha y chai.

// Importing mocha and chai
const mocha = require('mocha')
const chai = require('chai')
  
// Importing fareutils.js where our code is written
const fareUtils = require('../fareutils')
  
const expect = chai.expect
  
// Group of tests using describe
describe('fareUtils', function () {
  
    // We will describe each single test using it
    it('expect fare to be 50 for 0km, 0min', () => {
        let fare = fareUtils.calcFare(0, 0)
        expect(fare).to.equal(50)
    })
  
    it('expect fare to be 100 for 10km, 0min', () => {
        let fare = fareUtils.calcFare(10, 0)
        expect(fare).to.equal(100)
    })
  
    it('expect fare to be 56 for 2km, 18min', () => {
        let fare = fareUtils.calcFare(2, 18)
        expect(fare).to.equal(56)
    })
})

Paso 5: configurar el servidor de Nodes

const express = require('express');
const path = require('path')
const fareUtils = require('./fareutils')
  
const app = express();
  
app.use(express.json())
app.use(express.urlencoded({extended: true}))
  
app.use('/', express.static(path.join(__dirname,
                    'public_static')))
  
app.post('/calcfare', (req, res) => {
    let km = parseFloat(req.body.km)
    let min = parseInt(req.body.min)
  
    let fare = fareUtils.calcFare(km, min)
  
    res.send({fare: fare})
})
  
app.get('/rate', (req, res) => {
    res.send(fareUtils.rate)
})
  
app.listen(2222, () => console.log(
    'Server started on http://localhost:2222'))

Paso 6: Cómo ejecutar la prueba de mocha
Si todas las pruebas están en la carpeta Prueba y si ha requerido correctamente mocha y chai. Aquí puede simplemente ejecutar pruebas describiendo su archivo package.json como

"scripts": {
    "test": "mocha",
    "start": "node app.js",
} 

Ahora, comenzaremos nuestra prueba siguiendo el comando en la terminal o el comando promopt:

npm run test

El resultado de la prueba cuando todo es correcto y el código no cambia:

por lo que se pasa la prueba y se muestra una marca verde en la terminal.

Ahora, si alguien realiza cambios en fareutils.js, veamos la terminal:
Aquí hemos realizado cambios en la línea 11 de fareutils.js

Publicación traducida automáticamente

Artículo escrito por SHASHWATSHARMA2 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *