我正在ES6类中尝试手动模拟方法,方法是在__mock__
文件夹中创建手动模拟文件。但模拟文件根本不起作用。这是我的项目:
├── __mocks__
│ └── MockTestDependency.js
├── MockTestDependency.js
└── MockTest.test.js
./ MockTestDependency.js:
export default class MockTestDependency {
addAction(value1, value2) {
return value1 + value2
}
}
./__嘲笑__ / MockTestDependency.js:
export default {
addAction: jest.fn((value1, value2) => {
return value1 + value2 + 1
})
}
./ MockTest.test.js:
import MockTestDependency from "./MockTestDependency"
beforeAll(() => {
jest.mock('./MockTestDependency')
})
describe('mock test', () => {
it('first case', () => {
let mockTestDependency = new MockTestDependency()
expect(mockTestDependency.addAction(1, 2)).toBe(4)
})
})
任何帮助都将不胜感激。
答案 0 :(得分:0)
jest.mock('./MockTestDependency')
之前,应该在导入之后调用 beforeAll
。
它将被提升到代码块的顶部,实际上在任何导入之前调用(这是必要的)。如果在beforeAll
内部已经加载外部依赖项后调用它。