jquery - $.ajax 的 Jest 单位覆盖率
问题描述
我想$.ajax
在我的反应方法中使用 jest 和酶来测试单位覆盖率。
$.ajax({
url: `url`,
type: "GET"
}).done(data => {
//dosomething
}).fail(err => {
//do something else
});
我如何模拟$.ajax
以涵盖成功和错误部分的测试?
解决方案
以下代码适用于模拟 ajax 响应(完成和失败案例)-jest 测试用例@abbas ali:P
let response={"rows":[{"dlvDate":"03/13/2020","sts":"SC","}],"errorMessage":null,"count":null,"data":null,"result":true};
let ajax_response_sucess=(response)=> {
var deferred = $.Deferred().resolve(response);
return deferred.promise();
}
let ajax_response_fail=(response)=> {
var deferred = $.Deferred().reject(response);
return deferred.promise();
}
it("test for callModalService function", () => {
$.ajax=jest.fn=()=>{return ajax_response_sucess(response)};
wrapper.instance().callModalService()//call the function,which makes Api call
$.ajax=()=>{return ajax_response_fail(response)};
//call the function which makes Api call
wrapper.instance().callModalService()
})
推荐阅读
- python - 在 AWS 中使用自定义语言模型 (python API) 进行转录 - ModelSettings 错误
- flutter - Flutter - CheckBoxListTile 包裹在 Dissmisible 中时没有动画
- javascript - 如何更新对象状态?
- javascript - 反转d3条形图加载动画
- python - 在线性回归中没有得到正确的输出
- aws-lambda - 我创建了一个用于捕获事件 REMOVE 的 lambda,但现在我想将该已删除的记录添加到另一个表(AWS 发电机)
- javascript - 每当在 Google 表格中检测到新的 Google 表单响应时,让 google 脚本运行
- ios - IOS | 这个编解码器是什么 - 'lghrn'?
- visual-studio-code - VScode 输入回显
- data-visualization - 如何使 Forge Data Visualization 扩展与 IFC 文件一起使用?