Pruebas de javascript parametrizadas usando Jest

Jan 07 2023
¿Alguna vez se encontró escribiendo diferentes casos de prueba para probar la misma funcionalidad para variar solo las variables que está usando en su prueba? Las pruebas parametrizadas se utilizan para volver a ejecutar el mismo caso de prueba, pero en diferentes condiciones en cada ejecución. Esto hace que la prueba sea más fácil de mantener y evita duplicaciones.

¿Alguna vez se encontró escribiendo diferentes casos de prueba para probar la misma funcionalidad para variar solo las variables que está usando en su prueba?

Las pruebas parametrizadas se utilizan para volver a ejecutar el mismo caso de prueba, pero en diferentes condiciones en cada ejecución. Esto hace que la prueba sea más fácil de mantener y evita duplicaciones.

Pero, ¿cómo lo uso con Jest?

Jest globals viene con un método llamado eachque permite que su prueba se vuelva a ejecutar, utilizando datos diferentes cada vez.

Este método se puede usar pasando una tabla, que se pasará a su función de prueba y se usará dentro del cuerpo de su prueba.

Supongamos que tiene una función de suma y necesita probarla con diferentes valores, para que pueda pasar a la tabla las listas de valores que se usarán y el resultado esperado al usar esos valores.

test.each([
  [[1, 2], 3],
  [[50, 51], 101],
  [[10, 25], 35],
])('adds %i and expects %i', (numbers, result) => {
  const [firstNumber, secondNumber] = numbers
  expect(add(firstNumber, secondNumber)).toEqual(result)
})

test.each([
  {first: 1, second: 2, result: 3},
  {first: 50, second: 51, result: 101},
  {first: 10, second: 25, result: 35},
])('adds $first and $second and expects $result', ({ first, second, result }) => {
  expect(add(firstNumber, secondNumber)).toEqual(result)
})

También puede usar todos los otros métodos de broma con su prueba parametrizada, como test.only.eacho test.skip.each.

Una nota final es que si está utilizando una versión de Jest anterior a la 23.x, deberá instalar un paquete npm llamado jest-each que le permite escribir un caso de prueba básicamente de la misma manera que lo hemos hecho con una versión más nueva de Jest. .