我想在模块forgotPassword
中模拟函数authenticationPlugin/App
,所以我正在这样做
jest.mock("authenticationPlugin/App", () => ({
forgotPassword (email: string) {
const msg='success'
email='a'
return msg
}
}))
现在我想清除
authenticationPlugin/App
的模拟并为forgotPassword
方法使用不同的实现所以我做到了
jest.clearAllMocks();
jest.mock("authenticationPlugin/App", () => ({
forgotPassword (email: string) {
throw new Error(<any>{'err':{'message':'Network Error'}})
}
}))
现在,我希望在清除模块
forgotPassword
的模拟后,authenticationPlugin/App
方法具有不同的实现,但是它不会改变... 最佳答案
如果要在每个测试中为模拟提供不同的实现,则可以改用jest.fn
。
扩展您的代码,看起来可能像这样:
it('returns success', () => {
authApp.forgotPassword = jest.fn((email: string) => {
const msg='success'
email='a'
return msg
});
// Your test code here.
});
test('returns error', () => {
authApp.forgotPassword = jest.fn((email: string) => {
throw new Error(<any>{'err':{'message':'Network Error'}})
});
// Your test code here.
});