¿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);
});
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)
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 desome
, por este motivo tanto usartoBeTruthy()
comotoBe(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