4

我正在使用protractor为我的角度页面编写 e2e 测试。我使用 $httpBackend 来模拟由 $http 发送的请求但是在一个旧页面中我发现了 jquery ajaxFrom 插件,它通过 jquery ajax 发送调用。我注意到它不能被 $httpBackend 嘲笑

嘲笑这些东西的最佳解决方案是什么?

4

1 回答 1

3

经过调查,我发现了一种非常简单的方法来处理来自角度页面的 jquery ajax 调用(由 jquery ajaxForm 插件制作)在我们的测试规范中,我只是把

browser.executeScript( '$.fn.ajaxForm = function(form){return{submit: function(){form.success([{result: "ok"}]);}}}' );

因此,我以这种方式模拟了 jquery ajaxForm 插件发送的请求。

同样,我们可以模拟原生 JS XMLHTTPRequest 对象

            window.XMLHttpRequest = function(){
                return{
                    send: function(){return true;},
                    open: function(){return true;},
                    status: 200,
                    responseText: '{result: "ok"}',
                    getAllResponseHeaders: function(){return true;},
                    readyState: 4
                }
            }
于 2015-01-13T12:20:59.643 回答