如何从Restangular对象获取baseUrl(和其他配置设置)?

时间:2014-07-17 16:26:43

标签: angularjs restangular

假设我按如下方式定义工厂:

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

我希望能够编写单元测试以确认我的baseUrlid字段已正确设置。这可能吗?我知道我可以在我的服务上查看.route属性的路由,但不包括baseUrl

1 个答案:

答案 0 :(得分:1)

我知道迟到的反应,但我自己也在想这个,但找不到明确的答案。返回的对象具有'configuration'属性,该属性具有'baseUrl'和'restangularFields'属性。

我还建议将自定义Restangular对象移动到自己的服务中:

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

所以你可以这样测试:

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

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