Jquery 茉莉花2号整合测试
我试图用jasmine 2.3.4测试一个真正的ajax请求,但我不知道如何处理ajax调用。我的代码类似于Jquery 茉莉花2号整合测试,jquery,ajax,jasmine,Jquery,Ajax,Jasmine,我试图用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",
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');
});
});
检查,它应该做你想要的
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');
});
});
我在您的代码“预期spy unknown已被['Antonio']调用,但从未被调用”中遇到此错误。哪一组代码?我已经对第一部分进行了编辑,对测试做了一些修改,第二部分需要在规范运行程序中包含sinon.js。这是李斌,非常感谢你的回复。当我运行您的第一个代码块时,我得到了这个错误:超时-异步回调没有在jasmine.DEFAULT\u Timeout\u INTERVAL指定的超时内调用。我在一个基于剑道ui和SpringREST服务的单页应用程序中运行这些代码。我甚至尝试在beforeach块中插入ajax调用,但仍然不起作用:-嗯,您可以通过添加
jasmine.DEFAULT_timeout_INTERVAL=20000来增加超时在每个
块之前的中,其中20000
是以毫秒为单位的时间。端点响应需要多长时间?网络选项卡上的13毫秒。但我有本地的一切