AngularJS / Karma 单元测试与真实的 XHR 数据 / passThrough()
AngularJS / Karma unit testing with real XHR data / passThrough()
我想使用passThrough()使用真实的$http数据进行单元测试。
这是我到目前为止所拥有的:
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();
});
但这给出了一个错误:
Unexpected request: GET /api/data
No more request expected
Error: Unexpected request: GET /api/data
No more request expected
如果我删除应用调用,它会超时。
最有可能的是
,您将在与提供具有真实数据的服务的端口不同的端口上运行 karma。如果可以将请求重新路由到运行具有真实数据的服务的服务器/端口,使其不会遇到 CORS,您将能够使其工作。在我的项目中,我使用 Charles 代理来映射 url,以便在使用 CORS 时绕过 CORS,passThrough()
.您还可以使实际数据服务 CORS 兼容以简化操作。
相关文章:
- 用程序搜索JQuery数据表中的文本
- 要求输入在数据列表中
- 正在将数据主题添加到所有项目
- 函数参数中的数据与指定变量之间的任何性能差异
- 在VanillaJS中模拟模型双向数据绑定
- CSS-如何定位内容数据标题
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 序列化数据属性中对象的最可靠方法
- 如何将JSON数据导入我的ejs模板
- 不显示带有本地json文件数据的谷歌地图脚本
- 如何将json数据显示为html
- 画布数据到图像
- 使用jquery将mysql数据获取到新的表行中
- 使用html中的外部javascript进行数据验证
- 有时数据是't显示在浏览器中
- React中的数据集表示
- Angular只从数组中获取所需的数据
- 无法将数据从firebase获取到我的html页面
- AngularJS / Karma 单元测试与真实的 XHR 数据 / passThrough()