2014-07-17 11 views
7

Say I zdefiniować fabryki w następujący sposób:Jak mogę uzyskać baseUrl (i inne ustawienia konfiguracyjne) z obiektu prostokątnego?

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

Chciałbym, aby móc pisać testy jednostkowe, aby potwierdzić, że mój baseUrl a pole id został ustawiony prawidłowo. czy to możliwe? Wiem, że mogę wyświetlić trasę z usługą .route w mojej usłudze, ale nie obejmuje ona baseUrl.

Odpowiedz

1

Późna reakcja Wiem, ale sam się nad tym zastanawiałem i nie mogłem znaleźć jednoznacznej odpowiedzi. Zwrócony obiekt ma właściwość "configuration", która ma właściwości "baseUrl" i "restangularFields".

Chciałbym również zasugerować przeniesienie niestandardową Restangular przedmiot do swojej dyspozycji:

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'); 
    } 
    ]); 

więc można testować tak:

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

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