2016-06-17 10 views
2

Ist es möglich, eine jQuery.ajax Anfrage (die wegen Kendo UI Datenquelle aufgerufen wird) in einer AngularJs App über Winkelmesser zu verspotten?Winkelmesser spöttisch jQuery ajax

Gebraucht Script/Rahmen etc

  • Protractor
  • jQuery
  • jsdom
  • Mockjax

ich mit folgenden Skript versucht (ohne die Ajax-Request verspottet werden)

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();   

    }); 

}); 

Ich bin nicht einmal sicher, ob es auch möglich ist, einen jQuery.ajax Anruf in Protractor (wie wir mit $ http & $ httpBackend)

Antwort

1

Ich glaube, Sie diese Mock in Ihre Web-Anwendung injizieren müssen verspotten mit browser.addMockModul. Dann werden Ihre jquery ajax-Anfragen verspottet.

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" }); 
    }); 
}); 

Nachdem Sie dieses Mock-Modul injiziert haben, wird Ihre Anfrage durch Mock beantwortet.

Ich hoffe, das funktioniert für Sie.

+0

Leider funktioniert es nicht, es hat nur Timeout –