2016-06-17 4 views
2

Можно ли издеваться над запросом jQuery.ajax (который вызван из-за Datasource Kendo UI) в приложении AngularJs через Protractor?Проталкиватель насмешливый jQuery ajax

Используется скрипт/Framework и т.д.

  • транспортир
  • 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();   

    }); 

}); 

Я даже не уверен, если это возможно даже издеваться вызов jQuery.ajax в транспортир (как мы делали это с $ HTTP & $ httpBackend)

ответ

1

Я думаю, вам нужно вводить этот макет в веб-приложения с browser.addMockModule. Тогда ваши запросы 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" }); 
    }); 
}); 

После того, как вы введете этот модуль-макет, на ваш запрос будет откликнуться макет.

Я надеюсь, что это сработает для вас.

+0

К сожалению, это не сработало, оно просто приурочено –

Смежные вопросы