Jest 只MOCK模块中的某个功能实现
单元测试某些场景下只想模拟模块中的某个功能,并且保留模块原有的功能。这时候我可以用 jest.requireActual 配合 jest.mock 进行实现。jest.requireActual该API返回实际模块而不是模拟模块,绕过所有有关该模块是否应接收模拟实施的检查。为什么用 jest.requireActual ? 因为jest的mock中是不允许直接使用全局变量,所以我们无法直接impo
·
单元测试某些场景下只想模拟模块中的某个功能,并且保留模块原有的功能。这时候我可以用 jest.requireActual 配合 jest.mock 进行实现。
jest.requireActual
该API返回实际模块而不是模拟模块,绕过所有有关该模块是否应接收模拟实施的检查。为什么用 jest.requireActual
? 因为jest的mock中是不允许直接使用全局变量,所以我们无法直接import
模块包装实现。
例子
模拟Taro的login API
jest.mock('@tarojs/taro', () => {
const login = jest.fn(async (): Promise<{ code: string; errMsg: string }> => {
return Promise.resolve({ code: '122321121', errMsg: 'is:ok' })
})
return {
...jest.requireActual('@tarojs/taro-h5'),
login
}
})
更多推荐
已为社区贡献1条内容
所有评论(0)