DEV Community

Cristian Fernando
Cristian Fernando

Posted on • Edited on

Paracetamol.test.js🧪| #5: Testea este código JavaScript

¿Cuál es la diferencia entre test A y test B?

Dificultad: Básico

// arr.test.js
const f = (arr) => {
  return arr.some((item) => {
    return item > 3;
  });
};

//test A
test("[1,2,3,4,5] => true", () => {
  const res = f([1, 2, 3, 4, 5]);
  expect(res).toBeTruthy();
});

//test B
test("[1,2,3,4,5] => true", () => {
  const res = f([1, 2, 3, 4, 5]);
  expect(res).toBe(true);
});
Enter fullscreen mode Exit fullscreen mode

A. test A y test B son iguales, ambos test pasan
B. test B no pasa las pruebas, test A si pasa las pruebas
C. toBeTruthy no es un matcher de jest
D. Ninguna de las anteriores

Respuesta en el primer comentario.


Top comments (1)

Collapse
 
duxtech profile image
Cristian Fernando

Respuesta:
A. test A y test B son iguales, ambos test pasan

Jest es tan robusto que viene incorporado con algunos matchers muy prácticos e interesantes. Uno de ellos es toBeTruthy() que espera un valor javascript que sea truthy.

Para este ejemplo la función f regresa siempre un booleando debido al uso de some, por este motivo tanto usar toBeTruthy() como toBe(true) produce el mismo resultado para esta función en particular.

Para finalizar recalcar que un valor truthy cubre un espectro mas amplio de valores que un simple booleano true, esto debe ser considerado en su uso.

Puedes consultar la lista completa de valores truthy en javascript en este enlace de la documentación oficial