Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

185
Vistas
Cómo restablecer el recuento de llamadas de las funciones simuladas de Jest antes de cada prueba

Soy nuevo en Jest, estoy tratando de usarlo para probar si se llamó a una función o no. Me di cuenta de que mock.calls.length no se restablece para cada prueba, sino que se acumula. ¿Cómo puedo hacer que sea 0 antes de cada prueba? No quiero que mis próximas pruebas dependan de los resultados de las anteriores.

Sé que hay beforeEach en Jest. ¿Debería usarlo? ¿Cuál es la mejor manera de restablecer mock.calls.length? Gracias.

Un ejemplo de código:

Sum.js:

 import local from 'api/local'; export default { addNumbers(a, b) { if (a + b <= 10) { local.getData(); } return a + b; }, };

Suma.prueba.js

 import sum from 'api/sum'; import local from 'api/local'; jest.mock('api/local'); // For current implementation, there is a difference // if I put test 1 before test 2. I want it to be no difference // test 1 test('should not to call local if sum is more than 10', () => { expect(sum.addNumbers(5, 10)).toBe(15); expect(local.getData.mock.calls.length).toBe(0); }); // test 2 test('should call local if sum <= 10', () => { expect(sum.addNumbers(1, 4)).toBe(5); expect(local.getData.mock.calls.length).toBe(1); });
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Una forma que encontré para manejarlo: borrar la función simulada después de cada prueba:

Para agregar a Sum.test.js:

 afterEach(() => { local.getData.mockClear(); });

Si desea borrar todas las funciones simuladas después de cada prueba, use clearAllMocks

 afterEach(() => { jest.clearAllMocks(); });
over 4 years ago · Santiago Trujillo Denunciar

0

Como señaló @AlexEfremov en los comentarios. Es posible que desee utilizar clearAllMocks después de cada prueba:

 afterEach(() => { jest.clearAllMocks(); });

Tenga en cuenta que esto borrará el recuento de llamadas de cada función simulada que tenga, pero probablemente esa sea la forma correcta.

over 4 years ago · Santiago Trujillo Denunciar

0

Puede configurar Jest para restablecer o borrar simulacros después de cada prueba colocando uno de estos parámetros en su jest.config.js :

 module.exports = { resetMocks: true, };

o

 module.exports = { clearMocks: true, };

Aquí está la documentación:

https://jestjs.io/docs/en/configuration#resetmocks-boolean

resetMocks [booleano]

Predeterminado: falso

Restablece automáticamente el estado simulado antes de cada prueba. Equivale a llamar a jest.resetAllMocks() antes de cada prueba. Esto conducirá a que se eliminen las implementaciones falsas de cualquier simulacro, pero no restaurará su implementación inicial.

https://jestjs.io/docs/configuration#clearmocks-boolean

clearMocks [booleano]

Predeterminado: falso

Borre automáticamente llamadas, instancias y resultados simulados antes de cada prueba. Equivalente a llamar a jest.clearAllMocks() antes de cada prueba. Esto no elimina ninguna implementación simulada que se haya proporcionado.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda