1

我正在尝试测试我的 ajax 代码(链接)的故障功能。

我正在使用最新版本的 Karma、PhantomJS 和 Jasmine 以及所有必需的插件。

测试在 Chrome 中成功运行,但是当我使用 PhantomJS 时,我的 ajax 失败测试不会调用失败或成功函数。我为调试目的添加了一个成功,而不是在下面的代码中。由于所有其他 ajax 测试都按预期工作,因此还设置了正确的之前和之后,只是请求没有根据需要失败。

这是我的测试片段。

it("Check sample response of fail", function() {
    var fail = jasmine.createSpy("getJSON fail");

    app.getJSON(testUrl).fail(fail);

    jasmine.Ajax.requests.mostRecent().respondWith({
        status: 500,
        statusText: "error",
        contentType: "text/plain",
                responseText: ""
    });

    expect(fail).toHaveBeenCalled();
    expect(fail.calls.mostRecent().args[0]).toBe("error");
    expect(fail.calls.mostRecent().args[1]).toBe(500);
});
4

0 回答 0