DEV Community

Cristian Fernando
Cristian Fernando

Posted on

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

Testea el siguiente código JavaScript

Dificultad: Básico

//arr.test.js
const filtrarPares = (arr) => {
  return arr.filter((item) => item % 2 !== 0);
};

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

A. ❌ FAIL tests, Object is equality. If it should pass with deep equality, replace "toBe" with "toStringEqual"
B. ✅ PASS tests, [1,2,3,4,5] => [1,3,5]

Respuesta en el primer comentario.


Top comments (1)

Collapse
 
duxtech profile image
Cristian Fernando

Respuesta:
A. ❌ FAIL tests, Object is equality. If it should pass with deep equality, replace "toBe" with "toStringEqual"

Cuando hacemos test que involucren aserciones con arreglos u objetos tenemos que usar el matcher toEqual y no así toBe, si bien ambos hacen lo mismo, recuerda que lo datos no primitivos se comparan por referencia y no por valor.

En palabras mas simples:

  • Aserciones con primitivos: toBe
  • Aserciones con arreglos u objetos: toEqual