首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用真实的XHR数据进行AngularJS / Karma单元测试/ passThrough()

使用真实的XHR数据进行AngularJS / Karma单元测试/ passThrough()
EN

Stack Overflow用户
提问于 2013-11-03 12:48:10
回答 1查看 1.4K关注 0票数 5

我想使用passThrough()在单元测试中使用真实的$http数据。

这是我到目前为止所知道的:

代码语言:javascript
复制
var should = chai.should();
beforeEach(module('myApp', 'ngMockE2E'));
beforeEach(inject(function(_$httpBackend_, _$rootScope_, _$http_) {
  $scope = _$rootScope_;
  $http = _$http_;
  $httpBackend = _$httpBackend_;
}));

it.only('blah', function(done) {
 $httpBackend.whenGET('/api/data').passThrough();

  $scope.$apply(function() {
  $http.get('/api/data').success(function(data) {
   data.should.eql({"foo": "bar"});
    done();
  });
});

// Evidently not required with E2E
//$httpBackend.flush();

});

但这会给出一个错误:

代码语言:javascript
复制
Unexpected request: GET /api/data
No more request expected
Error: Unexpected request: GET /api/data
No more request expected

如果我删除了应用调用,它就会超时。

EN

回答 1

Stack Overflow用户

发布于 2013-11-10 03:04:33

您最有可能在不同的端口上运行karma,而不是在具有实际数据的服务可用的端口上运行karma。如果您可以将您的请求重新路由到运行具有实际数据的服务的服务器/端口,这样它就不会遇到CORS,您将能够使其工作。在我的项目中,当使用passThrough()时,我使用Charles proxy to map urls来绕过CORS。您还可以使您的真实数据服务CORS兼容,以使事情变得轻松。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19749915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档