2014-07-17 13 views
7

şöyle bir fabrika tanımlamak ki:baseUrl (ve diğer yapılandırma ayarları) bir Restangular nesnesinden nasıl alabilirim?

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

isterim benim baseUrl ve id alan doğru ayarlanmış onaylamak için birim testleri yazabilmek için. Mümkün mü? Rotamı hizmetimdeki .route özelliği ile görüntüleyebileceğimi biliyorum, ancak bu baseUrl'u içermiyor.

cevap

1

Geç cevap Biliyorum, ama kendimi merak ediyordum ve kesin bir cevap bulamadım. Döndürülen nesnenin 'baseUrl' ve 'restangularFields' özelliklerine sahip bir 'configuration' özelliği vardır.

Ben de kendi hizmete özel Restangular nesneyi hareket öneririm:

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

Yani şöyle test edebilir:

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

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