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:
- 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:- Abra la carpeta raíz de su proyecto y cree una nueva carpeta llamada prueba en ella.
- Dentro de la carpeta de prueba, cree un nuevo archivo llamado test.js que contendrá todo el código relacionado con las pruebas.
- 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:
- 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:
- 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);
});
});
- 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