Reactjs Jest-测试文件外部的模拟模块

Reactjs Jest-测试文件外部的模拟模块,reactjs,unit-testing,jestjs,enzyme,Reactjs,Unit Testing,Jestjs,Enzyme,我带着嘲笑的问题来找你 我打算实现的是在测试文件之外模拟几个模块的可能性 我假设第一个答案是: 您可以在测试文件中模拟模块,尽管您正在尝试以不同的方式进行模拟 我知道这会奏效的。然而,我真的不想在每次测试中模拟这些模块 我有一个如下所示的安装文件: const setup = (initialState, component) => { const store = TestState.getStore(initialState) // getting redux's state m

我带着嘲笑的问题来找你

我打算实现的是在测试文件之外模拟几个模块的可能性

我假设第一个答案是:

您可以在测试文件中模拟模块,尽管您正在尝试以不同的方式进行模拟

我知道这会奏效的。然而,我真的不想在每次测试中模拟这些模块

我有一个如下所示的安装文件:

const setup = (initialState, component) => {
  const store = TestState.getStore(initialState) // getting redux's state
  mockModules(initialState); // mocking modules
  const mounted = mount(
   <Provider store={store}>{component}</Provider>
  )
  return { store, mounted }
}

const mockModules = (initialState) => {
 jest.resetModules();
 jest.doMock(pathToModule, () => ({
   mockedFunction: () => ({ value: initialState.value }) // mocking function 
 }))
}
我的问题是,我用
mockModules
函数模拟的这些模块没有被模拟

我试过很多“变通办法”,但都不管用。
有什么想法吗?

请以文本而不是图像的形式提供列表。如果我正确理解了这个问题,那是因为如果没有重新导入模块,jest.mock在测试中是无用的。总是jest.resetModules+jest.mock+require。所以。。。我应该使用
jest.resetModules
+
jest.mock
+
require
,而不是使用
jest.mock
,是的,按此顺序。很不幸,它不起作用。我打算模拟redux saga使用的函数/模块。除redux saga模块模拟外,一切正常(redux/react redux/create the store/Retrieve Value from the store):xI想做类似的事情,请以文本而不是图像的形式提供列表。如果我正确理解了这个问题,那是因为如果没有重新导入模块,jest.mock在测试中是无用的。总是jest.resetModules+jest.mock+require。所以。。。我应该使用
jest.resetModules
+
jest.mock
+
require
,而不是使用
jest.mock
,是的,按此顺序。很不幸,它不起作用。我打算模拟redux saga使用的函数/模块。除了redux saga模块mocking之外,一切都正常(redux/react-redux/创建存储/从存储中检索值):xI想做类似的事情
describe('My test', () => {
  
  const setupTest = (initialState = {}) => {
     const {mounted, store} = setup(initialState, <MyComponent />);

     return {mounted, store}
  }

  it('first test', () => {
   const {mounted} = setupTest();
   expect(mounted.exists()).toBe(true);
  })
})