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

649
Views
Broma: mejor manera de deshabilitar la consola dentro de las pruebas unitarias

Me pregunto si hay una mejor manera de deshabilitar los errores de la consola dentro de una prueba de Jest específica (es decir, restaurar la consola original antes o después de cada prueba).

Aquí está mi enfoque actual:

 describe("Some description", () => { let consoleSpy; beforeEach(() => { if (typeof consoleSpy === "function") { consoleSpy.mockRestore(); } }); test("Some test that should not output errors to jest console", () => { expect.assertions(2); consoleSpy = jest.spyOn(console, "error").mockImplementation(); // some function that uses console error expect(someFunction).toBe("X"); expect(consoleSpy).toHaveBeenCalled(); }); test("Test that has console available", () => { // shows up during jest watch test, just as intended console.error("test"); }); });

¿Hay una forma más limpia de lograr lo mismo? Me gustaría evitar spyOn , pero parece que mockRestore solo funciona con él .

¡Gracias!

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Para un archivo de especificaciones en particular, el de Andreas es lo suficientemente bueno. La configuración a continuación suprimirá las declaraciones de console.log para todos los conjuntos de pruebas,

 jest --silent

(o)

Para personalizar warn, info and debug , puede usar la siguiente configuración

tests /setup.js o jest-preload.js configurados en setupFilesAfterEnv

 global.console = { ...console, // uncomment to ignore a specific log level log: jest.fn(), debug: jest.fn(), info: jest.fn(), // warn: jest.fn(), // error: jest.fn(), };

jest.config.js

 module.exports = { verbose: true, setupFilesAfterEnv: ["<rootDir>/__tests__/setup.js"], };
over 4 years ago · Santiago Trujillo Report

0

Si quieres hacerlo solo para una prueba específica:

 beforeEach(() => { jest.spyOn(console, 'warn').mockImplementation(() => {}); });
over 4 years ago · Santiago Trujillo Report

0

Como cada archivo de prueba se ejecuta en su propio subproceso, no es necesario restaurarlo si desea deshabilitarlo para todas las pruebas en un solo archivo. Por la misma razón, también puedes simplemente escribir

 console.log = jest.fn() expect(console.log).toHaveBeenCalled();
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!