Javascript Jest mock调用真实客户端而不是mock

Javascript Jest mock调用真实客户端而不是mock,javascript,node.js,unit-testing,jestjs,Javascript,Node.js,Unit Testing,Jestjs,我试图在以下测试中模拟对实际sms客户端的呼叫: message.test.js /** *@jest环境节点 */ 从“节点模拟http”导入{createMocks}; 从“../../../../pages/api/messages”导入handleFormSubmit; 描述(“/api/messages”,()=>{ 测试(“如果govnotify错误,则将用户发送到错误页面”,async()=>{ jest.mock(“../../../../src/use\u cases/send

我试图在以下测试中模拟对实际sms客户端的呼叫:

message.test.js

/**
*@jest环境节点
*/
从“节点模拟http”导入{createMocks};
从“../../../../pages/api/messages”导入handleFormSubmit;
描述(“/api/messages”,()=>{
测试(“如果govnotify错误,则将用户发送到错误页面”,async()=>{
jest.mock(“../../../../src/use\u cases/send\u text\u message”,()=>({
__艾斯莫杜勒:没错,
默认值:()=>
jest.fn().mockReturnValue({error:“afakestingerror”})
}))
const{req,res}=createMocks({
方法:“张贴”,
正文:{phoneNumber:“aFakePhoneNumber”,
名称:“aFakeName”,},
});
等待handleFormSubmit(请求、回复);
预期(res.\u getRedirectUrl()).toBe(“/text\u service\u error”)
expect(res.statusCode).toBe(302);
})
});
这是正在测试的文件,我想在其中模拟sendTextMessage函数

messages.js

从“../../src/用例/发送文本消息”导入发送文本消息;
从“./../src/dependencies”导入{getNotifyClient}”;
导出默认异步(req,res)=>{
if(!(请求?.body?.phoneNumber&&req?.body?.name)){
res.redirect(“/text\u service\u error”)
返回;
}
const notifyClient=getNotifyClient();
const result=wait sendTextMessage(notifyClient)(req.body.phoneNumber);
console.log(结果)
if(result.error){
res.redirect(“/text\u service\u error”)
返回;
}
res.redirect(“/text\u service\u confirm”);
};
sendTextMessage函数来自另一个文件,如下所示:

发送文本消息.js

从“./CONSTANTS”导入常量;
const sendTextMessage=(notifyClient)=>async(phoneNumber)=>{
让结果;
试一试{
结果=等待notifyClient.sendSms(
CONSTANTS.GOV\通知\模板\ ID,
电话号码
);
}捕捉(错误){
结果={错误:{消息:“实际生产错误”};
}
返回结果;
};
导出默认sendTextMessage;

每次运行测试时,我都会收到一个通知,表明sms客户端试图发送文本消息,而不是使用模拟和出错。我不是在嘲笑
getNotifyClient()
我认为模拟整个
sendTextMessage
函数就足够了?

如果对jest.mock的调用在测试中,它就不会被提升。把它移到进口所在的地方。