0

希望有人能指出我正确的方向。我已经从角度模拟中删除了所有 $httpbackend 东西,试图让 Karma 用真正的 $http 调用进行测试。如果,在我的摩卡测试中,我这样做:

it('应该返回一些东西', function(done) {

 inject(function($http) {
    $http.post('http://localhost:3000/api/hello', {}).success(function(err) {
      done();
    });
  });
});

以上工作正常 - 但我必须指定主机/帖子。现在我有一个服务,它在自身内部执行完全相同的调用 - 但它只有 /api/hello - 没有服务器,因为就我的 Angular 应用程序而言它是本地的。

it('should return something', function(done) {

  $scope.$apply(function() {
    myService.doCall(function(res) {
      done();
    });
  });
});

这不起作用,并给了我 WARN [web-server]: 404: /api/hello

这是服务:

angular.module('myApp').factory('myService', function($http) {
  return{    
    doCall: function(callback) {
      $http.get('/api/hellos').success(function(data) {
        callback(data);
      });
    }
  };
});

我尝试在 karma.conf 中设置主机/端口,但这似乎没有任何作用。代理似乎也不起作用。

关于在哪里设置我的主机/端口的建议?

或者关于 Karma + real $http 的替代建议?有一个 angular-spec gist 漂浮在周围,但它似乎被打破了,所以我也在尝试做同样的事情。

4

0 回答 0