Javascript 如何在react js中检查函数是否被调用?
我正在尝试Javascript 如何在react js中检查函数是否被调用?,javascript,reactjs,jestjs,jest-mock-axios,Javascript,Reactjs,Jestjs,Jest Mock Axios,我正在尝试测试我的服务,它有一个功能无需提交即可保存 export const saveWithoutSubmit = async ( values, orderId, taskId, fseMsisdn, updateTaskListAfterFilter ) => { var obj = { remarks: values.remarks, requestedBy: localStorage.getItem("msisdn") }; tr
测试
我的服务,它有一个功能无需提交即可保存
export const saveWithoutSubmit = async (
values,
orderId,
taskId,
fseMsisdn,
updateTaskListAfterFilter
) => {
var obj = {
remarks: values.remarks,
requestedBy: localStorage.getItem("msisdn")
};
try {
const response = await sendPostRequest(`${API_TASK_URL}closeSr`, {
...obj,
saveWithoutSubmit: true
});
if (response && response.data && response.data.status.code !== "200") {
error(response.data.result.message);
} else {
console.log(response);
success(response.data.status.message);
updateTaskListAfterFilter();
}
} catch (e) {
if (e.response && e.response.data) {
console.log(e.response.data.message);
error(e.response.data.status.message);
}
}
};
我想检查是否调用了success
或error
方法?或者是否调用了updateTaskListAfterFilter
我试过这样做
你能建议我如何测试async
方法或post请求(使用mook数据)吗
这样我的测试用例就可以通过了。
我想检查我是否从promise获得成功,我的成功方法将被调用为else error
有更新吗 更新 您应该将
it(“不使用sumit保存”),()=>{
更改为it(“不使用sumit保存”),async()=>{
然后,您通常使用jest.fn()
创建一个模拟函数,并将其提供给另一个函数或组件
最后,等待调用mock函数:
await wait(() => {
expect(mockUpdateTaskListAfterFilter).toBeCalled();
});
或者,您可以等待调用模拟之前发生的其他事件,例如调用其他模拟或页面上出现的事件,然后检查您的模拟是否被调用。您看过Jest文档了吗?它解释了如何在测试中使用或更好。@David784如果您更改我的cod,那就太好了e sandboxany update?。!!这能回答你的问题吗?@frodo2975不,我只是在测试一个有一个http调用的函数。你如何用我告诉你的内容更新它,如果它仍然不起作用,请更新你的问题,我将再次尝试帮助你。你能粘贴完整的错误吗?看起来你没有给出
saveWithoutSubmit()
你的模拟函数。找不到依赖关系:“axios”相对于“/src/remark.service.js”依赖关系NotFoundError:找不到依赖关系:“axios”相对于“/src/remark.service.js”在n
看到我在传递任何想法吗?为什么会发生这种情况
it("save without sumit", async () => {
const sendPostRequest = jest.fn(() =>
Promise.resolve({ data: { greeting: "hello there" } })
);
const updateTaskListAfterFilter = () => {};
saveWithoutSubmit({}, updateTaskListAfterFilter);
expect(updateTaskListAfterFilter).toBeCalled();
});
it("save without sumit", async () => {
const sendPostRequest = jest.fn(() =>
Promise.resolve({ data: { greeting: "hello there" } })
);
const mockUpdateTaskListAfterFilter = jest.fn();
const updateTaskListAfterFilter = () => {};
saveWithoutSubmit({}, updateTaskListAfterFilter);
expect(updateTaskListAfterFilter).toBeCalled();
await wait(() => {
expect(mockUpdateTaskListAfterFilter).toBeCalled();
});
});
await wait(() => {
expect(mockUpdateTaskListAfterFilter).toBeCalled();
});