es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Pruebas de aplicación CRUD con mocha chai

Soy nuevo en JavaScript / las pruebas de JavaScript y estaba haciendo un curso sobre el marco de pruebas mocha con chai. ¿Cómo se prueba una aplicación simple de CRUD? Quiero escribir pruebas unitarias para todas ellas. Intenté buscar preguntas aquí, pero todas eran muy avanzadas y no las entendí. ¿Me puedes ayudar por favor? Sería apreciado. La pregunta fue:

module.exports = {

addDetails: function() {
    let data =[]
    data.push("one");
    return data
  },

deleteDetails: function() {
    let data =["one" , "two"]
    data.splice(0 , 1)
    return data
  },

editDetails: function() {
    let data =["one"]
    data.splice(0 , 1 , "three")
    return data
  },

updateDetails: function() {
    let data = ["one" , "three"]
    data.splice(1 , 0 , "two")
    return data
  },

detailsPop: function() {
    let numb = ["one" , "two"]
    numb.pop()
    return numb
  },

concatData: function() {
    let data1 = ["one"]
    let data2 = ["two"]
    let result = data1.concat(data2)
    return result
  }
 }
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para probar una aplicación CRUD simple utilizando el marco Mocha con afirmaciones Chai, puedes escribir pruebas unitarias para cada función en el objeto module.exports de la siguiente manera:

    1. Primero, deberás instalar Mocha y Chai utilizando npm:
      npm install --save-dev mocha chai
      
    2. En tu archivo de pruebas, requiere los módulos necesarios y el archivo que contiene las funciones CRUD:
      const assert = require('chai').assert;
      const crud = require('./crud'); // asumiendo que el nombre del archivo es crud.js
      
    3. Ahora, puedes escribir tus pruebas unitarias para cada función en el objeto CRUD utilizando las funciones describe y it de Mocha para estructurar las pruebas, y las funciones de afirmación de Chai para comparar valores reales con valores esperados.
      describe('Objeto CRUD', function() {
      
       describe('addDetails', function() {
         it('debería devolver un array con un elemento al agregar un elemento', function() {
           let result = crud.addDetails();
           assert.isArray(result);
           assert.lengthOf(result, 1);
           assert.include(result, 'one');
         });
       });
      
       describe('deleteDetails', function() {
         it('debería eliminar el primer elemento de un array con dos elementos', function() {
           let result = crud.deleteDetails();
           assert.isArray(result);
           assert.lengthOf(result, 1);
           assert.notInclude(result, 'one');
           assert.include(result, 'two');
         });
       });
      
       describe('editDetails', function() {
         it('debería reemplazar el primer elemento en un array por "three"', function() {
           let result = crud.editDetails();
           assert.isArray(result);
           assert.lengthOf(result, 1);
           assert.notInclude(result, 'one');
           assert.include(result, 'three');
         });
       });
      
       describe('updateDetails', function() {
         it('debería insertar "two" entre "one" y "three"', function() {
           let result = crud.updateDetails();
           assert.isArray(result);
           assert.lengthOf(result, 3);
           assert.include(result, 'one');
           assert.include(result, 'two');
           assert.include(result, 'three');
         });
       });
      
       describe('detailsPop', function() {
         it('debería eliminar el último elemento de un array con dos elementos', function() {
           let result = crud.detailsPop();
           assert.isArray(result);
           assert.notInclude(result, 'two');
           assert.include(result, 'one');
         });
       });
      
       describe('concatData', function() {
         it('debería concatenar dos arrays en un solo array', function() {
           let result = crud.concatData();
           assert.isArray(result);
           assert.lengthOf(result, 2);
           assert.include(result, 'one');
           assert.include(result, 'two');
         });
       });
      
      });
      
    4. Finalmente, puedes ejecutar las pruebas utilizando el comando CLI de Mocha:
      mocha
      

      Esto ejecutará todas las pruebas en tu archivo de pruebas y mostrará los resultados en la consola.

      También puedes utilizar opciones adicionales para personalizar el formato de salida, observar cambios en los archivos y filtrar las pruebas según su nombre o etiquetas. Para obtener más información sobre las opciones de Mocha, consulta la documentación oficial.

Comments are closed.