我可以为expect()设置一个基本网址吗?

时间:2016-07-02 05:28:26

标签: javascript angularjs unit-testing restangular

我的restangular调用在配置文件中设置了baseUrl到http://localhost:3000/。所以像

这样的电话
Restangular.all("awards").customPOST(award)

致电baseUrl+"awards"

现在,当我为此编写测试时,我必须写:

httpBackend.expectPOST("http://localhost:3000/awards")

但是稍后如果这个baseUrl changes,我将不得不在很多.expect()方法中更改它。

是否有任何方法在某个配置文件中为expect方法设置baseUrl

所以期望方法就像 -

httpBackend.expectPOST(baseUrl + "awards");

因此,baseUrl中的任何更改都不需要expect()方法中的任何更改吗?

1 个答案:

答案 0 :(得分:0)

您可以创建angular.constant,然后在需要的任何地方注入该常量。

var app = angular.module('app', []);
app.constant('Configuration', {
  BASE_URL: 'http://localhost:3000/'
});

app.factory('RestApiService', function($http, Configuration) {
  var awardApi = Configuration.BASE_URL + '/awards';

  return {
    getAwards: fucntion() {
      return $http.get(awardApi);
    };
  };
});