2014-07-17 9 views
7

dire che io definisco una fabbrica come segue:Come posso ottenere baseUrl (e altre impostazioni di configurazione) da un oggetto Restangular?

angular.module('myServices').factory('TestService', ['Restangular', 
    function(restangular){ 
     return restangular.withConfig(function(RestangularConfigurer) { 
      RestangularConfigurer.setBaseUrl('api'); 
      RestangularConfigurer.setRestangularFields({ id: 'Id'}); 
     }; 
    }).all('Job'); 
}]); 

Vorrei essere in grado di scrivere unit test per confermare che il mio e il campo baseUrlid è stato impostato correttamente. È possibile? So che posso visualizzare il percorso con la proprietà .route sul mio servizio ma che non include lo baseUrl.

risposta

1

risposta tardiva lo so, ma mi stavo chiedendo questo e non ho potuto trovare una risposta definitiva. L'oggetto restituito ha una proprietà 'configuration', che ha proprietà 'baseUrl' e 'restangularFields'.

Vorrei anche suggerire di spostare l'oggetto Restangular personalizzato in un proprio servizio:

angular.module('myServices') 

    .factory('TestService', 
    ['Restangular', 
    function(restangular) { 
    return restangular.withConfig(function(RestangularConfigurer) { 
     RestangularConfigurer.setBaseUrl('api'); 
     RestangularConfigurer.setRestangularFields({ id: 'Id'}); 
    }); 
    } 
    ]) 

    .factory('Job', 
    ['TestService', 
    function (TestService) { 
    return TestService.all('Job'); 
    } 
    ]); 

Così si potrebbe verificare in questo modo:

//sut is 'system under test', in your case the TestService 

expect(sut.configuration.baseUrl).toEqual('api'); 
expect(sut.configuration.restangularFields.id).toEqual('id'); 
Problemi correlati