希望有人能指出我正确的方向。我已经从角度模拟中删除了所有 $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 漂浮在周围,但它似乎被打破了,所以我也在尝试做同样的事情。