Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Jest: un frameworks de pruebas

Contenidos
  1. Globales
  2. Expect
  3. Callbacks para mantener las pruebas DRY
  4. Principio First

Hasta hace poco las herramientas para testear estaban separadas en diferentes librerías para cada parte de la suite de pruebas: Mocha como test runner, Chai como librería de corroboraciones y Sinon para dobles de prueba. Por otro lado también tenemos Jasmine y Karma con los que podemos armar una suit de tests.

Globales

Jest es un framework todo en uno que hace más simple configurar una site de test con todo lo necesario para testear unitariamente. Al igual que casi todos los runners viene con varias funciones globales que nos ayudarán a agrupar las pruebas. Dentro de estas funciones tenemos las típicas describe, it, y test. El listado de todas las funciones globales está en la documentación

Expect

La función de expect se usa cada vez que desea probar un valor. Rara vez llamará expect por sí mismo. En su lugar, utilizará expect junto con una función matcher para afirmar algo sobre un valor.

test('the bestJsAcademy', () => {
  expect(bestJsAcademy()).toBe('Boolean');
});

Callbacks para mantener las pruebas DRY

A menudo, mientras escribe las pruebas, tiene que realizar algún trabajo de configuración antes de que se ejecuten las pruebas, y tiene que realizar algún trabajo de finalización después de que se ejecuten las pruebas. Jest proporciona funciones auxiliares para manejar esto.

beforeEach(() => {
  initializeCityDatabase();
});

afterEach(() => {
  clearCityDatabase();
});

test('city database has Vienna', () => {
  expect(isCity('Vienna')).toBeTruthy();
});

test('city database has San Juan', () => {
  expect(isCity('San Juan')).toBeTruthy();
});

Link a la documentación de Jest SetUp y Teardown

Principio First

  • F ast <– salida terminal rápida
  • I solated <— agregando beforeEach
  • R epetible <— siempre dar el mismo valor
  • S elf-validating <— lenguaje de aserciones
  • T horough <— permite probar escenarios tanto positivos como negativos y casos de borde