gpt4 book ai didi

jquery - Jasmine 2集成测试

转载 作者:行者123 更新时间:2023-12-01 03:36:18 24 4
gpt4 key购买 nike

我正在尝试使用 jasmine 2.3.4 测试真正的 ajax 请求,但我不知道如何处理 ajax 调用。我的代码是这样的

describe("testing user-info calls", function() {
it("should make a real AJAX request", function () {
var callback = jasmine.createSpy();
$.ajax({
type: "GET",
url: "data/userinfo/username",
async: false,
success: callback
});
expect(callback).toHaveBeenCalledWith('Antonio');
});
});

最佳答案

检查asynchronous documentation ,它应该做你想要的事情。

describe("testing user-info calls", function() {
it("should make a real AJAX request", function (done) {
$.ajax({
type: "GET",
url: "data/userinfo/username",
async: false,
success: function(arg) {
expect(arg).toEqual('Antonio');
done();
});
});
});
});

或者,如果您实际上不需要访问服务器,您可以使用 sinon.js 来使用 fakeServer:

beforeEach(function() {
server = sinon.fakeServer.create();
});

afterEach(function () {
server.restore();
});

describe("testing user-info calls", function() {
it("should make a real AJAX request", function () {
server.respondWith("GET", "data/userinfo/username",
[200, { "Content-Type": "text" },
'Antonio']);
var callback = jasmine.createSpy();
$.ajax({
type: "GET",
url: "data/userinfo/username",
async: false,
success: callback
});
server.respond();
expect(callback).toHaveBeenCalledWith('Antonio');
});
});

关于jquery - Jasmine 2集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33502815/

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