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

Ada*_*lin 7 angularjs restangular

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

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

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

小智 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');
   }
  ]);
Run Code Online (Sandbox Code Playgroud)

所以你可以像这样测试:

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

expect(sut.configuration.baseUrl).toEqual('api');
expect(sut.configuration.restangularFields.id).toEqual('id');
Run Code Online (Sandbox Code Playgroud)