我在用玩笑学习单元测试。我不明白jest.createMockFromModule和jest.mock之间的区别。似乎他们也是这样做的?谁能给我解释一下区别吗?
发布于 2022-09-14 21:36:05
jest.mock -做模块自动模拟,并隐式替换测试文件中导入的模块.如果通过第二个参数提供fabric函数,它将定义模块实现如下:
jest.mock('./moduleName', () => ({
default: 12345 // default constant definition
MyClass: { // Named export object or class definition
get: () => { /* get method class definition */ }
}
/* etc... */
}))您还可以导入模块的只覆盖部分。
jest.createMockFromModule -生成自动模拟模块并将其作为值返回.它在手工嘲弄中很有用。您可以重写所需的模块值:
// __mocks__/MyModule.js
const moduleName = jest.createMockFromModule('./moduleName');
moduleName.someNamedImport = () => 12345; // override method implementation
expect(moduleName.default.mocked).toBeTruthy(); // to check default import auto-mocking
expect(moduleName.someNamedImport()).toBe(12345)https://stackoverflow.com/questions/71651076
复制相似问题