我有一些 jasmine 单元测试,它们是“集成测试”,它们锻炼了一些编写为角度服务的核心组件。但是我的组件不会调用网络。我证明问题的两个测试是这样的......
[顺便说一句,我有一个禁用 CORS 的插件]
it('test http get', function () {
httpGet('http://endpoint.json');
function httpGet(theUrl) {
var xmlHttp = null;
xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", theUrl, false);
xmlHttp.send(null);
return xmlHttp.responseText;
}
})
it('test angular http get', inject(function($http) {
$http.get('http://endpoint.json').
success(function (data, status, headers, config) {
console.log('success');
}).
error(function (data, status, headers, config) {
console.log('failure');
});
}));
我知道这是因为 $httpBackend 模拟。但是我需要使用真正的实现。我想使用 jasmine 的异步功能来等待响应或超时,但我只是无法弄清楚如何让 Angular 真正进行调用。
在其他新的 jQuery 调用中工作正常!:-)