DEV Community

Cristian Fernando
Cristian Fernando

Posted on

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

Testea el siguiente código JavaScript

Dificultad: Básico

//arr.test.js
const sum = (arr) => {
  return arr.reduce((currrent, item) => {
    return currrent + item;
  }, 0);
};

test("[1,2,3,4,5] => regresa max 15", () => {
  const value = sum([1, 2, 3, 4, 5]);
  expect(value).toBeGreaterThan(3);
  expect(value).toBeGreaterThanOrEqual(15);
});
Enter fullscreen mode Exit fullscreen mode

A. toBeGreaterThan() y toBeGreaterThanOrEqual() no pansan los test
B. Solo toBeGreaterThan() pasa los test
C. Solo toBeGreaterThanOrEqual() pasa los test
D. Ambos pasan los test

Respuesta en el primer comentario.


Oldest comments (1)

Collapse
 
duxtech profile image
Cristian Fernando • Edited

Respuesta:
D. Ambos pasan los test

Tanto toBeGreaterThan() como toBeGreaterThanOrEqual() son matchers útiles para trabajar con números enteros.

En este caso los nombres de los matchers son bastante intuitivos y todo el test se puede leer como si fuera una oración en ingles.

Con la sentencia expect(value).toBeGreaterThan(3) esperamos que el valor que retorna la función (que es la suma de todos sus elementos, para el ejemplo nos da 15) sea mas grande que 3; dicha premisa se cumple, por ello el test pasa.

Con la sentencia expect(value).toBeGreaterThanOrEqual(15) esperamos nuevamente que el valor que retorna la función sea esta vez mas grande o igual que 15, entonces el test vuelve a pasar nuevamente.

Finalmente recalcar que también existen los matchers opuestos, en este caso:

  • toBeLessThan(): menor que
  • toBeLessThanOrEqual(): menor o igual que

Dichos matchers funcionan de igual manera por lo que no veo necesario crear otro reto para incluirlos, me basta con mencionarlos para que puedas intuir su funcionamiento.