Una de las bibliotecas de JavaScript más utilizadas basadas en el motor JavaScript V8 de Chrome para desarrollar aplicaciones del lado del servidor es el desarrollo web Node.js. Unit testing node js es un software que se utiliza para probar métodos en los que las unidades individuales se prueban solas. Una unidad se conoce como la parte comprobable más pequeña del código en una aplicación. Unit testing node js es una tarea que llevan a cabo los desarrolladores durante la fase de desarrollo de una aplicación.
Hay muchos marcos disponibles en Node.js para ejecutar pruebas unitarias. Éstos son algunos de ellos.
Lea también: Node.js con mecanografiado: todo lo que necesita saber
Aplicación de nodo js de prueba unitaria usando estos marcos
1: Moca
Uno de los marcos de prueba más antiguos y utilizados para aplicaciones de nodos es Mocha. Además, admite operaciones asíncronas como promesas, devoluciones de llamada y asíncrono/espera. También es altamente extensible y tiene un marco personalizable que admite diferentes aserciones y bibliotecas de simulación.
Es muy fácil instalar Mocha, todo lo que tiene que hacer es abrir el símbolo del sistema y luego escribir el comando que se indica a continuación.
# Installs globally npm install mocha -g # installs in the current directory npm install mocha --save-dev
¿Cómo usar Moca?
Si desea utilizar este marco en su aplicación, siga los pasos que se indican a continuación.
- En primer lugar, abra la carpeta raíz de su proyecto y luego cree una nueva carpeta llamada prueba en ella.
- Luego, dentro de la carpeta de prueba, cree un nuevo archivo y llamémoslo test.js, que tendrá todo el código relacionado con las pruebas.
- Por último, todo lo que necesita hacer es abrir package.json y agregar las líneas de comando que se detallan a continuación.
"scripts": { "test": "mocha --recursive --exit" }
Permítanos darle un 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 luego péguelo en el test.js que ha creado anteriormente. Ahora ejecute estas pruebas, abra el símbolo del sistema en el directorio raíz del proyecto y escriba el siguiente comando.
npm run test
Fuera del código dado arriba:
¿Qué es Chai?
Chai es a menudo la biblioteca que se usa principalmente junto con Mocha. Se utiliza como TTD (Test Driven Development)/ BDD (Behaviour Driven Development). Chai es una biblioteca de aserciones 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, puede usar fácilmente Chai para escribir pruebas como oraciones en inglés.
Para instalar chai, abra su símbolo del sistema en el directorio raíz del proyecto y luego escriba el siguiente comando.
npm install chai
Ejemplo para Chai:
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: broma
Jest es también uno de los marcos más famosos que se conocen por su claridad. Es mantenido y desarrollado regularmente por Facebook. La característica más importante de jest es que está bien documentado y admite la ejecución de pruebas en paralelo. Es decir, cada prueba ejecutará su propio proceso para maximizar el rendimiento. Además, incluye algunas características diferentes como instantáneas, visualización y cobertura.
Puede instalar Jest fácilmente a través del siguiente comando.
npm install --save-dev jest
Nota: La acción predeterminada de Jest es que excepto encontrar todos los archivos de prueba en una carpeta conocida como “_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: jazmín
Se sabe que Jasmine es uno de los marcos de prueba más poderosos y existe desde 2010. Jasmine es un Desarrollo impulsado por el comportamiento(BDD) framework para probar código JavaScript. También es conocido por su compatibilidad y flexibilidad con otros marcos como Chai y Sinon. Los archivos de prueba deben tener un sufijo específico (*spec.js).
Puede instalar fácilmente Jasmine usando el comando que se indica a continuación.
npm install jasmine-node
Ejemplo:
describe("Test", function() { it("Addition", function() { var sum = 2 + 3; expect(sum).toEqual(5); }); });
4: AVA
AVA es el más nuevo de todos en la lista de marcos aquí. AVA es también el marco minimalista que le permite ejecutar sus pruebas de JavaScript al mismo tiempo. Al igual que el marco Jest, AVA también admite el procesamiento paralelo y las instantáneas, lo que lo hace relativamente rápido en comparación con los otros marcos. La característica importante de AVA no incluye globales implícitos y soporte incorporado para funciones asíncronas.
Puede instalar el AVA usando el comando que se indica a continuación.
npm init ava
Ejemplo:
Example: import test from 'ava'; test('Addition', t => { t.is(2 + 3, 5); });
Conclusión:
Aquí vamos entonces en este blog Unit testing node js. Cómo existen diferentes marcos para las pruebas unitarias. Cuáles son los mejores. Esperamos que esta información sea útil. Gracias por la lectura.