假设我按如下方式定义工厂:
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
。
答案 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');