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.


Discussion (1)

Collapse
duxtech profile image
Cristian Fernando Author

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