本文介绍了如何使用Jasmine测试XMLHttpRequest的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何在没有jQuery的情况下测试XMLHttpRequest或纯Javascript AJAX的onreadystatechange?我这样做是因为我正在开发Firefox扩展.我想我必须使用间谍,但由于我的Ajax不会返回任何内容,因此无法弄清楚该怎么做.
How can I test the onreadystatechange on XMLHttpRequest or pure Javascript AJAX without jQuery? I'm doing this because I'm developing Firefox extension. I guess I have to use spies, but couldn't figure out how because my ajax won't return anything.
submit : function() {
var url = window.arguments[0];
var request = new XMLHttpRequest();
request.open("POST", 'http://'+this.host+'/doSomething', true);
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.send("param="+param+"&emotions="+this.getParams());
request.onreadystatechange = function() {
if(this.readyState == 4) {
// alert(this.responseText);
}
};
}
推荐答案
如 SinonJS 的注释中所述,您可以轻松模拟XHR对象/创建伪造的服务器.
As mention in the comments with SinonJS you can easily mock the XHR object / create a fake server.
这篇关于如何使用Jasmine测试XMLHttpRequest的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!