茉莉花2整合试验

时间:2015-11-03 15:23:17

标签: jquery ajax jasmine

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

unname

1 个答案:

答案 0 :(得分:3)

检查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');
  });
});