Reactjs 为什么jest.isolateModules不能按预期工作?

Reactjs 为什么jest.isolateModules不能按预期工作?,reactjs,jestjs,react-hooks,Reactjs,Jestjs,React Hooks,我不想使用jest.resetModules,因为我想重置两个模块,但在所有运行过程中都保留一个 我的原始代码让事情按这样运行,但很糟糕,如下所示: beforeEach(() => { jest.resetModules(); require('hooks/useMyProvider'); const useMyProvider = require('#/'); api = useMyProvider(); // scoped above }) // Mock hook

我不想使用jest.resetModules,因为我想重置两个模块,但在所有运行过程中都保留一个

我的原始代码让事情按这样运行,但很糟糕,如下所示:

beforeEach(() => {
  jest.resetModules();
  require('hooks/useMyProvider');
  const useMyProvider = require('#/');
  api = useMyProvider(); // scoped above
})
// Mock hook since we can't spy on a function
jest.doMock('#/hooks/useActive', () => {
  return () => {
    return [true]
  }
});

// re-require the component that requires useActive so it pulls latest mock
let MyComponent = require('#/components/MyComponent')

const { container } = render(<MyComponent />);
然后在每次测试中,我都会这样做:

beforeEach(() => {
  jest.resetModules();
  require('hooks/useMyProvider');
  const useMyProvider = require('#/');
  api = useMyProvider(); // scoped above
})
// Mock hook since we can't spy on a function
jest.doMock('#/hooks/useActive', () => {
  return () => {
    return [true]
  }
});

// re-require the component that requires useActive so it pulls latest mock
let MyComponent = require('#/components/MyComponent')

const { container } = render(<MyComponent />);
当我在两个测试中这样做,并在返回中用
true
替换
false
时,无论哪个测试先出现,都会保持不变。我希望它每次都会改变,因为我已经隔离了模块