Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何从Restanglar对象获取baseUrl(和其他配置设置)?_Angularjs_Restangular - Fatal编程技术网

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

Angularjs 如何从Restanglar对象获取baseUrl(和其他配置设置)?,angularjs,restangular,Angularjs,Restangular,假设我对工厂的定义如下: angular.module('myServices').factory('TestService', ['Restangular', function(restangular){ return restangular.withConfig(function(RestangularConfigurer) { RestangularConfigurer.setBaseUrl('api'); Rest

假设我对工厂的定义如下:

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

我希望能够编写单元测试,以确认我的
baseUrl
id
字段设置正确。这可能吗?我知道我可以在我的服务上使用
.route
属性查看路由,但这不包括
baseUrl
我知道的延迟响应,但我自己对此感到疑惑,无法找到明确的答案。返回的对象具有“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');