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);
})
})