用Jest重置单个模块

问题描述 投票:25回答:1

jest.resetModules()清除所有模块的要求缓存,但是是否有办法仅清除单个模块?无法使用require.cache,因为Jest似乎绕过了它。

我正在测试有状态的Node模块(即,它依赖于对require的多次调用返回相同实例的事实)。对于我的测试,我需要重置模块的状态以测试不同的场景。 jest.resetModules()有效,但是随后我需要重新require其他一些不需要重置的模拟模块。

node.js jestjs commonjs
1个回答
4
投票

自笑话24起,您现在可以使用jest.isolateModules来执行此操作。

假设您只想重置某个模块,那么您应该在jest.isolateModules的回调中要求该模块:

jest.isolateModules
© www.soinside.com 2019 - 2024. All rights reserved.