Resumen
setup/Teardown
En Jest hay cláusulas para isolar las pruebas, donde un escenario de pruebas no afecte a otro, para ello se agrupan los casos con describe().
Teardown se trata de demoler o quitar casos de prueba anteriores para que no afecten en el actual al usar los hooks, que son sentencias adicionales según el tiempo de ejecución del grupo o los casos.
Codigo comentado
// describe reune un conjunto de bruebas, mejora la lectura del código y la encapsulación.
describe('gruop 1', () => {
// beforeAll es una sentencia [setup] que corre antes de todas las pruebas xej up db
// este tipo de utilidad se puede llamar hook y respeta el alcance o scope del grupo (describe).
beforeAll(() => {
console.log('beforeAll');
// up db
});
// afterAll es lo mismo pero después XD.
afterAll(() => {
console.log('afterAll');
// down db
});
// beforeEach corre antes de cada caso de prueba hasta el último.
beforeEach(() => {
console.log(beforeEach);
});
// afterEach es lo mismo pero después XD.
afterEach(() => {
console.log(afterEach);
});
// eslint-disable-next-line no-trailing-spaces
test('case 1', () => {
console.log('case 1');
expect(1 + 1).toBe(2);
});
test('case 2', () => {
console.log('case 2');
expect(1 + 3).toBe(4);
});
// En pruebas estáticas en producción es mala práctica poner console.log.
describe('group 2', () => {
beforeAll(() => {
console.log('beforeAll 2');
// up db
});
test('case 3', () => {
console.log('case 3');
expect(1 + 1).toBe(2);
});
test('case 4', () => {
console.log('case 4');
expect(1 + 3).toBe(4);
});
});
});
- OUT Terminal
~/.../testing-js/demos master ● npm run test
> demos@1.0.0 test
> jest
PASS src/05-setup.test.js
● Console
console.log
beforeAll
at Object.log (src/05-setup.test.js:7:13)
console.log
[Function: beforeEach]
at Object.log (src/05-setup.test.js:17:13)
console.log
case 1
at Object.log (src/05-setup.test.js:26:13)
console.log
[Function: afterEach]
at Object.log (src/05-setup.test.js:21:13)
console.log
[Function: beforeEach]
at Object.log (src/05-setup.test.js:17:13)
console.log
case 2
at Object.log (src/05-setup.test.js:30:13)
console.log
[Function: afterEach]
at Object.log (src/05-setup.test.js:21:13)
console.log
beforeAll 2
at Object.log (src/05-setup.test.js:38:15)
console.log
[Function: beforeEach]
at Object.log (src/05-setup.test.js:17:13)
console.log
case 3
at Object.log (src/05-setup.test.js:42:15)
console.log
[Function: afterEach]
at Object.log (src/05-setup.test.js:21:13)
console.log
[Function: beforeEach]
at Object.log (src/05-setup.test.js:17:13)
console.log
case 4
at Object.log (src/05-setup.test.js:46:15)
console.log
[Function: afterEach]
at Object.log (src/05-setup.test.js:21:13)
console.log
afterAll
at Object.log (src/05-setup.test.js:12:13)
PASS src/04-assertions.test.js
PASS src/02-math.test.js
PASS src/01-sum.test.js
Test Suites: 4 passed, 4 total
Tests: 18 passed, 18 total
Snapshots: 0 total
Time: 0.761 s, estimated 1 s
Ran all test suites.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?