對Restangular responseInterceptor執行單元測試的最佳方法是什麼?測試Restangular responseInterceptor
例如:
.config(['RestangularProvider', function(RestangularProvider){
RestangularProvider.setDefaultHttpFields({cache: true, withCredentials: true});
RestangularProvider.addResponseInterceptor(function (data, operation, what, url, response, deferred) {
console.log('response from '+ url);
console.log(data);
var extractedData;
// .. to look for getList operations
if (operation === "getList") {
// .. and handle the data and meta data
extractedData = data.data;
//extractedData.meta = data;
} else {
extractedData = data;
}
return extractedData;
});
}])
我意識到我的問題是關於如何模擬RestangularProvider,它提供給匿名函數。我還有另一個這種模式的實例,我需要添加一個測試,所以我仍然在研究這個。 – 2014-11-06 21:24:50
由於提供者用於配置服務,我不認爲需要模擬提供者本身;我相信服務的創建者可以通過測試來確認提供者是否正確地啓用/修改服務的行爲。至多我想確認我通過服務的提供者API啓用/修改的功能實際上是由服務使用的。在這種情況下,使用$ httpBackend的博客文章中使用的方法似乎是合適的(對於基於http的服務)。所以我會通過運用Restangular API來執行測試,並確認有效負載已按照您的預期進行了修改。 – saschwarz 2014-11-06 22:01:10