[英]How to mock Promise resolve function in Jest
我正在使用 Jest + Enzyme。 我有一個功能,
submitHandler = values => {
return new Promise((resolve, _) => {
saveSomething({values, resolve});
}
}
我的測試:
it('Should call saveSomething on form submit', () => {
const values = {firstName: 'FName', lastname: 'LName'};
const {enzymeWrapper, props} = setup();
enzymeWrapper.find('Formik').simulate('submit', values);
expect(props.saveSomething).toBeCalledWith({
values: {
...values,
contactLanguage: LOCALE_TO_LANGUAGE_MAP[props.locale],
},
});
});
目前,我的測試失敗了。 錯誤:
Error: expect(jest.fn()).toBeCalledWith(...expected)
- Expected
+ Received
@@ -1,6 +1,7 @@
Object {
+ "resolve": [Function anonymous],
"values": Object {
"contactLanguage": "FRENCH",
"firstName": "FName",
"lastname": "LName",
},,
問題:如何模擬解析功能?
Jest mocks 有一種內在的方法來處理 Promise 的解決和拒絕。 詳情請參考Jest Mock API 。
mockResolvedValue
方法就是用於這個目的。
只需通過對jest.fn()
的簡單調用來模擬您的 submitHandler 並添加mockResolvedValue
方法。
您也可以使用mockRejectValue
方法測試拒絕。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.