我有一个关于在Jasmine中嘲笑xhr的问题。我有以下Javascript情况:
function Test1(){
// some code
Test2({ readyState: 4, responseText: "", status: 200, statusText: "OK" });
}
function Test2(xhr){
var token = xhr.getResponseHeader("csrftoken");
var csrfCtrl = $("#token");
if (token != null && csrfCtrl != null) {
csrfCtrl.val(token);
}
}
现在我想窥探xhr.getResponseHeader()
函数,但我无法知道如何做到这一点。
我试过这样的事情:
describe("1 || Test ||", function () {
// Before we describe the tests we first need to setup a few things
beforeEach(function () {
// Load the first function of the HTML fixtures (htmlfixtures.js)
setUpHTMLFixture1();
jQuery.xhr = spyOn(jQuery.fn.ajax.xhr, "getResponseHeader").and.returnValue("null");
});
it("1.1 # Check xhr functionality", function () {
expect(jQuery.xhr).toHaveBeenCalled();
});
});
但那没用。有任何想法吗?也许重要的是要注意。我使用jQuery 1.8。
答案 0 :(得分:1)
SinonJS库允许您创建虚假的XMLHttpRequests和响应,以便您可以验证请求是否正确形成,并且您的代码正确处理响应。一个简单的例子来说明基本技术:
GitHub