gpt4 book ai didi

javascript - 如何使用 Jasmine 和 Blanket.js 测试并获得 ajax 请求的完整代码覆盖率以及完成和失败的 jQuery ajax 请求回调?

转载 作者:行者123 更新时间:2023-11-28 01:44:27 26 4
gpt4 key购买 nike

所以我有这样的东西:

var Utils = {};

Utils.genericAddRowPost = function(url) {
return $.post(url);
};

Utils.genericAddRow = function(dataSource, url) {
genericAddRowPost(url).done(function(data, textStatus, jqXHR) {
// add on to dataSource and other stuff
}).fail(function (jqXHR, textStatus, errorThrown) {
//handle error
});
};

我正在尝试使用 jasmine 和毯子测试并实现 100% 的代码覆盖率,但我似乎无法模拟/执行完成和失败处理程序。任何帮助将不胜感激。如果可能的话,我宁愿不必重组任何发布的代码。

最佳答案

使用 Jasmine,您应该能够监视 ajax 调用并模拟成功和失败条件。

类似这样的事情:

describe("my tests", function () {

beforeEach(function () {
spyOn(jQuery, "ajax");
});

it("should handle success", function () {

genericAddRow(a, b);

// call the success callback
$.ajax.mostRecentCall.args[1].success(data, textStatus, jqXHR);

// do your tests here
});

it("should handle failure", function () {

genericAddRow(a, b);

// call the success callback
$.ajax.mostRecentCall.args[1].error(jqXHR, textStatus, errorThrown);

// do your tests here
});
});

关于javascript - 如何使用 Jasmine 和 Blanket.js 测试并获得 ajax 请求的完整代码覆盖率以及完成和失败的 jQuery ajax 请求回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20496387/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com