Project for the unit test course
This project was generated with Angular CLI version 12.2.3.
- Nos aseguramos de que esten instalados como dependencias de desarrollo en el archivo package.json
- corremos el comando
npm remove @types/jasmine jasmine-core karma karma-chrome-launcher karma-coverage karma-jasmine karma-jasmine-html-reporter
todas las que se relacionen o simplemente las quitamos del archivo y corremosnpm install
- Si deseamos borrar la linea llamada "test": "ng test" al inicio del archivo, esta sirve para correr los test de jasmine y karma
- Abrimos el archivo llamado angular.json y vamos al apartado de test y borramos donde termina los corchetes{}
- Vamos al archivo llamado karma.conf.js y lo eliminamos por completo.
- Dentro de src/ borramos el archivo test.ts
- Corremos el comando
ng add @briebug/jest-schematic
para instalar jest - luego de instalado si queremos trabajar con localStorage debemos borrar en el archivo setup-jest.ts en la linea 8
|| ''
al final despues del value - En el archivo
tsconfig.spec.json
apartado de types agregamos la palabra jest en reemplazo de jasmine y luego de este apartado , agregamos"esModuleInterop":true, "emitDecoratorMetadata":true
- En el archivo
jest.config.js
podemos agregar configuraciones nuestras, podemos agregar luego desetupFilesAfterEnv
algo comocollectCoverage:true
se nos crea una carpeta de coverage automaticamente y podemos decirle el directory donde se va crear concoverageDirectory:'coverage/unitest'
- En el archivo package.json creamos el comando para ejecutar los test en el apartado scripts
"test": "jest"
- Corremos el comando
npm run test
para correr el test - Agregamos un nuevo comando en el archivo package.json llamado
"test-watch":"jest --watchAll"
- Podemos tambien crear la carpeta de coverage por medio de comando
test-coverage:jest --coverage
en el archivo package.json
- Luego de descargar o crear el proyecto Angular corremos el comando
npm install json-server
y corremos conjson-server --watch db.json
para levantar el backend en la direcciónhttp://localhost:3000
- las opciones de xit hace el test no se ejecute y que sea nulo o se evita igualmente se puede hacer para xdescribe
- Para fit y fdescribe hace lo contrario, se ejecuta unicamente el test que se halla marcado como fit o fdescribe
- La opcion it.oonly hace exactamente lo mismo que la anterior, se ejecuta ese solo test que se marco dentro del archivo spec
como sus nombre en ingles lo indican estos:
- beforeEach se ejecta antes del test
- beforeAll se ejecta antes de todo los test
- afterEach se ejecta despues del test
- afterAll se ejecta despues de todos los test
- Instalamos el angular material con
ng add @angular/material
- En el archivo package.json podemo crear un comando personalizado para lanzar los test antes de hacer bulid por ejemplo:
tbuild: jest && ng build
1. Cuando veas que ha fallado algun tests no te alarmes ya que esto es algo positivo, por ejemplo si tienes 20 test y han fallado 10 lo más probable es que esto significa qué sucedió algún tipo de cambio en el codigo en algún fichero spec, posiblemente se pueda haber añadido algún pipe algo parecido pero no significa que este malo solo sería revisarlo y verificar bien error.
2. No solo pruebes los métodos en los cuales te irá bien sino que también se pueden probar métodos para que falle la prueba, para así ver cómo actuaría nuestro código ante un posible fallo y allí estamos comprobando cómo nuestra aplicación actuaría ante errores.
Run ng serve
for a dev server. Navigate to http://localhost:4200/
. The app will automatically reload if you change any of the source files.
Run ng generate component component-name
to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module
.
Run ng build
to build the project. The build artifacts will be stored in the dist/
directory.
Run ng test
to execute the unit tests via Karma.
Run ng e2e
to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.
To get more help on the Angular CLI use ng help
or go check out the Angular CLI Overview and Command Reference page.