Las pruebas de unidad permiten asegurar que una parte del código cumple correctamente con sus funciones.
A continuación se muestra como realizar pruebas del cliente con Jasmine.
En la práctica, los sistemas deben pasar todas las pruebas. En este ejemplo se fallan algunas.
Esta salida muestra algunos fallos para que te des cuenta como se ven. En la práctica, todas la pruebas deben aprobarse.
> nodejs@1.0.0 test > jasmine Randomized with seed 87173 Started .F. Failures: 1) recomienda reg2 Message: Expected 'Bad Bunny.' to be 'Daddy Yankee.'. Stack: at <Jasmine> at UserContext.<anonymous> (file:///D:/gilpg/Documents/Sitios/awoas/jasminewin/spec/recomiendaSpec.js:6:45) at <Jasmine> 3 specs, 1 failure Finished in 0.012 seconds Randomized with seed 87173 (jasmine --random=true --seed=87173)
Este ejercicio usa la librería Jasmine para JavaScript. Puedes profundizar en este tema en la URL https://jasmine.github.io/
Descarga el archivo /src/jasmine.zip y descompáctalo.
Abre la carpeta descompactada con Visual Studio Code.
Edita los archivos que desees. El código a probar se coloca en la
carpeta src
y las pruebas en la carpeta spec
.
El proyecto ya contiene la carpeta node_modules
y el
archivo package-lock.json
, pero si quieres crearlos, debes seguir
estos pasos:
Instala Node.js desde https://nodejs.org/en.
Desde Visual Studio Code abre una terminal y usa el siguiente comando para
inicializar el proyecto de node:
npm init -y
Edita el archivo packege.json
e inserta en la linea 6, sin borrar
ni sobreescribir nada, la siguiente línea
"type": "module",
En el mismo archivo packege.json
cambia la línea que dice
"test"
a que diga:
"test": "jasmine"
Instala Jasmine en el proyecto con la orden:
npm install --save-dev jasmine
Inicializa Jasmine con la orden:
npx jasmine init
Ejecuta las pruebas con la orden:
npm run test
Haz clic en los triángulos para expandir las carpetas
1 | /** |
2 | * @param {string} genero |
3 | */ |
4 | export function recomienda(genero) { |
5 | if (genero === "pop") { |
6 | return "Dua Lipa." |
7 | } else if (genero === "reg") { |
8 | return "Bad Bunny." |
9 | } else { |
10 | return "De eso no conozco." |
11 | } |
12 | } |
1 | import { recomienda } from '../src/recomienda.js' |
2 | |
3 | describe("recomienda", () => { |
4 | it("pop", () => expect(recomienda("pop")).toBe("Dua Lipa.")) |
5 | it("reg", () => expect(recomienda("reg")).toBe("Bad Bunny.")) |
6 | it("reg2", () => expect(recomienda("reg")).toBe("Daddy Yankee.")) |
7 | }) |
1 | { |
2 | "spec_dir": "spec", |
3 | "spec_files": [ |
4 | "**/*[sS]pec.?(m)js" |
5 | ], |
6 | "helpers": [ |
7 | "helpers/**/*.?(m)js" |
8 | ], |
9 | "env": { |
10 | "stopSpecOnExpectationFailure": false, |
11 | "random": true |
12 | } |
13 | } |
14 |
1 | { |
2 | "name": "nodejs", |
3 | "version": "1.0.0", |
4 | "description": , |
5 | "main": "index.js", |
6 | "type": "module", |
7 | "scripts": { |
8 | "test": "jasmine" |
9 | }, |
10 | "keywords": [], |
11 | "author": , |
12 | "license": "ISC", |
13 | "dependencies": { |
14 | "@types/node": "^18.0.6", |
15 | "node-fetch": "^3.2.6" |
16 | }, |
17 | "devDependencies": { |
18 | "jasmine": "^5.1.0" |
19 | } |
20 | } |
21 |
1 | -- No se muestra el contenido de este archivo. -- |
1 |
Este archivo ayuda a detectar errores en los archivos del proyecto.
Lo utiliza principalmente Visual Studio Code.
No se explica aquí su estructura, pero puede encontrarse la explicación de todo en la documentación del sitio de Visual Studio Code.
1 | { |
2 | "compilerOptions": { |
3 | "checkJs": true, |
4 | "strictNullChecks": true, |
5 | "target": "ES6", |
6 | "module": "Node16", |
7 | "moduleResolution": "Node16", |
8 | "lib": [ |
9 | "ES2017", |
10 | "WebWorker", |
11 | "DOM" |
12 | ] |
13 | } |
14 | } |