DEV Community

Cristian Fernando
Cristian Fernando

Posted on • Updated 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