2016-04-04 21 views
2

İletken testimde doğru ajax çağrılarının yapıldığını doğrulamak isterim. Örneğin, /chapters'a gidersem /chapters/documents?page=1İletki: belirli ajax çağrıları için test

ajax çağrısı olduğundan emin olmak isterim Bunu iletici ile yapmak mümkün mü?

Bazı ilginç bir çözümle birlikte this numaralı postayı buldum, ancak yine de bunu nasıl kullanabileceğimi göremiyorum, it(...) benim için gerçekten bir şeyleri test edebilirim. Örneğin. browser.addMockModule çok umut verici geliyor ama yine de, beforeEach numaramda ne yapmalıyım ve bir şeyi nasıl doğrulayabilirim? Yardım takdir edilecektir!

+1

Neden bu şekilde test etmek istiyorsunuz:

browser.addMockModule('httpInterceptor', function() { angular.module('httpInterceptor', []).factory('httpRequestInterceptor',function ($q) { return { request: function (request) { window.handledRequests = window.handledRequests || []; window.handledRequests.push({ url: request.url, method: request.method, params: request.params, data: JSON.stringify(request.data) }); return request || $q.when(request); } }; }).config(function ($httpProvider) { $httpProvider.interceptors.push('httpInterceptor'); }); }); 

Sonra bu gibi testinde iddialarını yazabilirim? Bu, bir entegrasyon testi olduğundan, niçin arama sonuçlarına aykırı değildir. Bu, HTTPBackend ile ünite düzeyinde daha iyi bir şey gibi ses çıkarıcı –

+0

ile doğru gibi geliyor, ama yine de doğru son noktaların çağrıldığından ve gereksiz çağrı yapılmadığından emin olmak için uygulama tarafından çağrılan uç noktaları doğrulamak güzel olurdu. –

cevap

2

Aşağıdaki gibi bir şey deneyebilirsiniz. Testinizdeki sahte modül ekleyin:

browser.controlFlow().execute(function() { 
    browser.executeScript(function() { 
     return window.handledRequests; 
    }).then(function (handledRequests) { 
     // assert content of handledRequests 
    }); 
}); 
İlgili konular