如何使用Jasmine测试XMLHttpRequest

如何使用Jasmine测试XMLHttpRequest

本文介绍了如何使用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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-26 02:16