在单元测试中需要对组件进行动态、极端、正常状态测试,如果组件里使用了api那么我们想对组件进行接口多种不同响应进行测试时候就需要对模块进行动态值设置。
mockFun.mockImplementation
接受应作为模拟的实现使用的函数。模拟本身仍然会记录所有进入的调用以及来自自身的实例–唯一的区别是,在模拟被调用时也将执行实现。使用mockImplementation
我们可以在测试过程中修改mock的值。这样我们就可以实现多种接口状态模块
import { Login } from '@/api/login'
// 模拟登陆接口
jest.mock('@/api/login', () => ({
Login: jest.fn()
}))
describe('登陆页', () => {
it('正常', () => {
Login.mockImplementation(() => { code: 200 })
...code
})
it('失败', () => {
Login.mockImplementation(() => { code: 401 })
...code
})
}))