• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

164
Views
claro valor encapsulado en el módulo importado - Jest js

Digamos que estoy importando al módulo Jest como:

 let var; export const getVar = () => { if(var == null) { var = Date.now() } return var; }

Estoy tratando de hacer pruebas unitarias para este módulo, sin embargo, en cada prueba unitaria tengo que restablecer el valor "var". Intenté redefinir el módulo usando require en el método "beforeEach" pero no funciona. ¿Alguien sabe cómo restablecer valores encapsulados como este?

almost 3 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Usando la antigua sintaxis require y resetModules

foo.js

 let foo; const getFoo = () => { if (!foo) { foo = "foo"; } else { foo = "bar"; } return foo; }; module.exports = { getFoo };

foo.prueba.js

 beforeEach(() => jest.resetModules()); test("first", () => { const { getFoo } = require("./foo"); expect(getFoo()).toBe("foo"); }); test("second", () => { const { getFoo } = require("./foo"); expect(getFoo()).toBe("foo"); });

Uso de import dinámica y resetModules

foo.js

 let foo; export const getFoo = () => { if (!foo) { foo = "foo"; } else { foo = "bar"; } return foo; };

foo.prueba.js

 import { jest } from "@jest/globals"; beforeEach(async () => { jest.resetModules(); }); test("first", async () => { const { getFoo } = await import("./foo.js"); expect(getFoo()).toBe("foo"); }); test("second", async () => { const { getFoo } = await import("./foo.js"); expect(getFoo()).toBe("foo"); });
almost 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error