适用范围:

1. 作用:

  • 用仿真模块来替换测试时所使用的真实模块
    • 从而模拟真实模块的环境

2. 场景

  • 某些api在当前开发测试环境中无法使用
    • 如真实的DOM操作, 某些第三方库的方法

语法

1. 单文件仿真模块

1.1. 创建仿真模块

实例:

以typescript环境为例 对于/scr/目录下的模块fuck.ts

原模块内容
export function say(){
	return "fuck!"
}
/scr/__mocks__/目录下新建模块fuck.ts

fuck.ts内容:

let fuck = jest.createMockFromModule<typeof import("../fuck")>('../fuck')//返回一个可以修改属性的模块对象
 
fuck.say = () => "mock fuck!"//替换掉某些api
 
module.exports = fuck//导出整个替换后的仿真模块
说明

1.2. 在测试中使用仿真模块

2.1. 实例

对于/test/目录下的测试文件

  • 在测试文件中添加jest.mock('../src/fuck');
    • 当被测试代码中使用到fuck模块时, 就会使用仿真模块代替真实模块