Pruebas unitarias de la aplicación Node.js

Node.js es una biblioteca javascript ampliamente utilizada basada en el motor JavaScript V8 de Chrome para desarrollar aplicaciones del lado del servidor en el desarrollo web.

La prueba unitaria es un método de prueba de software en el que las unidades/componentes individuales se prueban de forma aislada. Una unidad se puede describir como la parte más pequeña del código comprobable en una aplicación. Las pruebas unitarias generalmente las llevan a cabo los desarrolladores durante la fase de desarrollo de una aplicación.

En Node.js hay muchos marcos disponibles para ejecutar pruebas unitarias. Algunos de ellos son:

  • Moca
  • Broma
  • Jazmín
  • AVA

Pruebas unitarias para una aplicación de Node utilizando estos marcos:

  1. Mocha: Mocha es un marco de prueba antiguo y ampliamente utilizado para aplicaciones de Nodes. Admite operaciones asíncronas como devoluciones de llamada, promesas y asíncrono/espera. Es un marco altamente extensible y personalizable que admite diferentes afirmaciones y bibliotecas de simulación.

    Para instalarlo, abra el símbolo del sistema y escriba el siguiente comando:

    # Installs globally
    npm install mocha -g
    
    # installs in the current directory
    npm install mocha --save-dev
    

    ¿Cómo usar Moka?
    Para utilizar este marco en su aplicación:

    1. Abra la carpeta raíz de su proyecto y cree una nueva carpeta llamada prueba en ella.
    2. Dentro de la carpeta de prueba, cree un nuevo archivo llamado test.js que contendrá todo el código relacionado con las pruebas.
    3. abra package.json y agregue la siguiente línea en el bloque de scripts.
      "scripts": {
      "test": "mocha --recursive --exit"
      }

    Ejemplo:

    // Requiring module
    const assert = require('assert');
      
    // We can group similar tests inside a describe block
    describe("Simple Calculations",() => {
      before(() => {
        console.log( "This part executes once before all tests" );
      });
      
      after(() => {
        console.log( "This part executes once after all tests" );
      });
          
      // We can add nested blocks for different tests
      describe( "Test1",() => {
        beforeEach(() => {
          console.log( "executes before every test" );
        });
          
        it("Is returning 5 when adding 2 + 3",() => {
          assert.equal(2 + 3, 5);
        });
      
        it("Is returning 6 when multiplying 2 * 3",() => {
          assert.equal(2*3, 6);
        });
      });
      
      describe("Test2",() => {
        beforeEach(() => {
          console.log( "executes before every test" );
        });
          
        it("Is returning 4 when adding 2 + 3",() => {
          assert.equal(2 + 3, 4);
        });
      
        it("Is returning 8 when multiplying 2 * 4",() => {
          assert.equal(2*4, 8);
        });
      });
    });

    Copie el código anterior y péguelo en el archivo test.js que hemos creado anteriormente. Para ejecutar estas pruebas, abra el símbolo del sistema en el directorio raíz del proyecto y escriba el siguiente comando:

    npm run test

    Producción:

    ¿Qué es Chai?
    Chai es una biblioteca de aserciones que a menudo se usa junto con Mocha. Se puede usar como una biblioteca de aserciones TTD (Desarrollo basado en pruebas) / BDD (Desarrollo basado en comportamiento) para Node.js que se puede combinar con cualquier marco de prueba basado en JavaScript. De manera similar a la declaración assert.equal() en el código anterior, podemos usar Chai para escribir pruebas como oraciones en inglés.

    Para instalarlo, abra el símbolo del sistema en el directorio raíz del proyecto y escriba el siguiente comando:

    npm install chai

    Ejemplo:

    const expect = require('chai').expect;
      
    describe("Testing with chai",() => {
        it("Is returning 4 when adding 2 + 2",() => {
          expect(2 + 2).to.equal(4);
        });
      
        it("Is returning boolean value as true",() => {
          expect(5 == 5).to.be.true;
        });
          
        it("Are both the sentences matching",() => {
          expect("This is working").to.equal('This is working');
        });
     });

    Producción:

  2. Jest: Jest también es un marco de prueba popular que es conocido por su simplicidad. Es desarrollado y mantenido regularmente por Facebook. Una de las características clave de jest es que está bien documentado y admite la ejecución de pruebas en paralelo, es decir, cada prueba se ejecutará en sus propios procesos para maximizar el rendimiento. También incluye varias características como visualización de pruebas, cobertura e instantáneas.

    Puedes instalarlo usando el siguiente comando:

    npm install --save-dev jest

    Nota: De manera predeterminada, Jest espera encontrar todos los archivos de prueba en una carpeta llamada » __tests__ » en su carpeta raíz.

    Ejemplo:

    describe("Testing with Jest",() => {
      test("Addition",() => {
        const sum = 2 + 3;
        const expectedResult = 5;
        expect(sum).toEqual(expectedResult);
      });
        
      // Jest also allows a test to run multiple
      // times using different values
      test.each([[1, 1, 2], [-1, 1, 0], [3, 2, 6]])(
      'Does %i + %i equals %i', (a, b, expectedResult) => {
        expect(a + b).toBe(expectedResult);
      });
    });

    Producción:

  3. Jasmine: Jasmine también es un poderoso marco de prueba y existe desde 2010. Es un marco de desarrollo impulsado por el comportamiento (BDD) para probar código JavaScript. Es conocido por su compatibilidad y flexibilidad con otros marcos de prueba como Sinon y Chai. Aquí los archivos de prueba deben tener un sufijo específico (*spec.js).

    Puedes instalarlo usando el siguiente comando:

    npm install jasmine-node

    Ejemplo:

    describe("Test", function() {
      it("Addition", function() {
        var sum = 2 + 3;
        expect(sum).toEqual(5);
      });
    });
  4. AVA: AVA es un marco minimalista relativamente nuevo que le permite ejecutar sus pruebas de JavaScript al mismo tiempo. Al igual que el marco Jest, también admite instantáneas y procesamiento paralelo, lo que lo hace relativamente rápido en comparación con otros marcos. Las características clave incluyen no tener valores globales implícitos y soporte integrado para funciones asíncronas.

    Puedes instalarlo usando el siguiente comando:

    npm init ava

    Ejemplo:

    import test from 'ava';
      
    test('Addition', t => {
      t.is(2 + 3, 5);
    });

Publicación traducida automáticamente

Artículo escrito por dark_coder88 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 *