2

是否可以通过量角器在 AngularJs 应用程序中模拟 jQuery.ajax 请求(由于 Kendo UI 的数据源而被调用)?

使用的脚本/框架等

  • 量角器
  • jQuery
  • jsdom
  • Mockjax

我尝试使用以下脚本(没有 ajax 请求被嘲笑)

var jsdom = require("jsdom");
var jQuery;
var mockjax;

jsdom.env("", function(err, window) {
    if (err) { console.error(err); return; } 
    jQuery = require("../jquery-2.2.4.js")(window);
    mockjax = require('../jquery.mockjax.js')(jQuery, window);  
});

describe('Websuite: TemplateTest', function() {

    beforeEach(function(){
        jQuery.mockjax({ url: "/XYZ/GetMails" });
    });

    it('some mocking test', function() {

        browser.get('https://localhost:44300/#/dat/templateTest');      

        browser.pause();        

    });

});

我什至不确定是否可以在 Protractor 中模拟 jQuery.ajax 调用(就像我们对 $http 和 $httpBackend 所做的那样)

4

1 回答 1

1

我认为您需要使用 browser.addMockModule 将此模拟注入您的 Web 应用程序。然后你的 jquery ajax 请求将被模拟。

browser.addMockModule('httpBackendMock', function() {
  angular.module('httpBackendMock', [])
    .run(function () {
      /**
       * I assume your web application has jQuery mockjax library for testing.
       * If doesn't exist, you need to inject/include jquery mockjax library into your web application.
       **/

      jQuery.mockjax({ url: "/XYZ/GetMails" });
    });
});

注入此模拟模块后,您的请求将由模拟响应。

我希望这对你有用。

于 2016-06-17T16:19:54.513 回答