我试过多次尝试但总是行不通。 我用Mocha单元测试。 这是我的代码单元测试:
var expect = require("expect");
var jQuery = require("jquery");
var sinon = require("sinon");
describe("SinonFakeServerWithJasmine", function() {
var server;
beforeEach(function() {
server = sinon.fakeServer.create();
});
afterEach(function() {
server.restore();
});
it("should fake a jQuery ajax request", function() {
server.respondWith("GET", "/something", [200, {
"Content-Type": "application/json"
},
'{ "stuff": "is", "awesome": "in here" }'
]);
jQuery.ajax({
url: "/something",
success: function() {
console.log("success");
},
error: function(err) {
console.log(err);
}
});
server.respond(); // Process all requests so far
});
});
==>这是日志错误Jquery.ajax
{ readyState: 0,
getResponseHeader: [Function],
getAllResponseHeaders: [Function],
setRequestHeader: [Function],
overrideMimeType: [Function],
statusCode: [Function],
abort: [Function],
state: [Function],
always: [Function],
then: [Function],
promise: [Function],
pipe: [Function],
done: [Function],
fail: [Function],
progress: [Function],
complete: [Function],
success: [Function],
error: [Function],
status: 0,
statusText: 'TypeError: Invalid URL' }
我不知道为什么会出现这样的错误。由于在我的情况下没有必要,我没有使用期望,我想用mocha测试sinon 感谢大家花时间阅读。
答案 0 :(得分:1)
我使用Jasmine有相同的无效网址问题。
我必须使用xmlhttprequest。
XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
jQuery.ajaxSettings.xhr = function() {
return new XMLHttpRequest();
};