Bienvenidos sean a este post, hoy veremos una opcion de jest.
Esto esta mas orientado a cuando queremos hacer algo antes de correr nuestro test. Esto puede ir desde iniciar una variable, verificar que las dependencias de un objeto estan establecidas, asi como tambien alguna funcion que se debe correr una sola vez u otra una vez finalizado todos los tests. Para poder verlo necesitaremos del proyecto que creamos en este post, sino lo poseen les dejo un link para descargarlo:
Simplemente extraigan el directorio en el pc y ya esta listo para ser usado. Nuestro primer paso sera ir al archivo hola.spec.ts y realicemos la siguiente modificacion:
class ContadorGlobal {
contar: number = 0;
incrementar(): void {
this.contar++;
}
}
describe("configurar y desmontar un test", () => {
let conteoGlobal: ContadorGlobal;
beforeAll(() => {
conteoGlobal = new ContadorGlobal();
});
beforeEach(() => {
conteoGlobal.contar = 0;
});
afterEach(() => {
console.log("contar = " + conteoGlobal.contar);
});
test("incremeto una vez", () => {
conteoGlobal.incrementar();
expect(conteoGlobal.contar).toEqual(1);
});
it("incremento dos veces", () => {
conteoGlobal.incrementar();
conteoGlobal.incrementar();
expect(conteoGlobal.contar).toEqual(2);
});
});
Primero crearemos una clase donde tendremos una propiedad con un valor inicial, luego un metodo que incrementara al propiedad en cada objeto creado. Lo siguiente es un grupo de tests, la descripcion es para estar en concordancia con el tema pero pueden usar otro si lo desean, en este usaremos dos test pero antes estableceremos nuestras funciones de configuracion y desmonte.
Lo primero que haremos sera declarar un objeto del tipo de la clase, el cual sera accesible desde todos los elementos de este grupo. Despues establecemos la primera funcion de configuracion, beforeAll sera para que antes de comenzar cualquier tipo de test define el objeto anterior mediante el new. Con nuestro objeto construido ya podremos trabajar en todos los tests. La siguiente funcion afectara al inicio de cada test, para esta ocasion reseteara el valor de contar en el objeto a 0. Y la ultima funcion sera para el desmonte, es decir cada vez que finalice un test nos mostrara el valor de contar. Con esto comentado hablemos sobre los tests.
En el primero incrementaremos el valor de contar una sola vez llamando una sola vez a incrementar. Luego usaremos a expect para verificar si el valor de contar es igual a 1. Lo mismo hacemos para el segundo test pero en este caso incrementaremos dos veces con un doble llamado a incrementar y luego el expect pero ahora con el valor de 2. Si lo probamos obtendremos una salida como esta:
$ npm test
> testing@1.0.0 test
> jest
console.log
contar = 1
at Object.<anonymous> (hola.spec.ts:18:11)
console.log
contar = 2
at Object.<anonymous> (hola.spec.ts:18:11)
PASS ./hola.spec.ts (66.444 s)
configurar y desmontar un test
✓ incremeto una vez (269 ms)
✓ incremento dos veces (34 ms)
Test Suites: 1 passed, 1 total
Tests: 2 passed, 2 total
Snapshots: 0 total
Time: 67.86 s
Ran all test suites.
$
Como mencionamos en todos los casos de configuracion y desmonte, nos realizo las tareas solicitadas. Tales como definir el objeto para ser usado, asi como tambien nos lo reseteo al inicio de cada test y por ultimo mostrar el valor correspondiente de cada contar. Luego nos mostro todos los datos pertinentes a los test, tal como lo estuvimos viendo en los posts anteriores. Antes de finalizar les dejo un link con todos los archivos utilizados y modificados en este post:
En resumen, hoy hemos visto como configurar y desmontar un test, que son, para que sirven, como se utilizan, donde se utilizan, y un ejemplo practico para verlo en accion. Espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.50
