【问题标题】:How to mock jquery ajax call while testing angular page如何在测试角度页面时模拟 jquery ajax 调用
【发布时间】:2015-01-09 12:22:10
【问题描述】:

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

模拟这些东西的最佳解决方案是什么?

【问题讨论】:

    标签: jquery angularjs ajaxform httpbackend e2e-testing


    【解决方案1】:

    经过调查,我发现处理来自角度页面的 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
                    }
                }
    

    【讨论】:

      猜你喜欢
      • 2022-01-10
      • 1970-01-01
      • 2022-01-12
      • 1970-01-01
      • 1970-01-01
      • 2019-11-30
      • 2019-06-05
      • 2023-04-02
      • 1970-01-01
      相关资源
      最近更新 更多