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