2

分度器を介してAngularJsアプリでjQuery.ajaxリクエスト(Kendo UIのデータソースのために呼び出される)をモックすることは可能ですか?

使用スクリプト/フレームワークなど

  • 分度器
  • jQuery
  • jsdom
  • モックジャックス

次のスクリプトで試しました(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();        

    });

});

分度器で 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 に答える