Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

182
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!