Мне нужен доступ к URL-адресу для теста, который я пишу, но он завершается неудачно с
«Превышено время ожидания 2000 мс. Для асинхронных тестов и перехватчиков убедитесь, что вызывается« done () »«
после различных экспериментов я не смог заставить его работать, и я подозреваю, что тест не может подключиться к Интернету.
Пример кода:
it('should be able to access the internet', function(done) {
inject(function($http) {
expect($http).to.exist; //this line passes the test
$http({
method: 'GET',
url: 'http://example.com'
}).success(function (data) {
console.log(data);
expect(true).to.be.true;
done();
}).error(function () {
expect(false).to.be.true;
done();
});
}});
Увеличение времени ожидания до какой-то суммы не помогает, и моя машина, на которой выполняются мои тесты, имеет доступ к Интернету.
Я также попробовал его с простым XmlHttpRequest вместо $ http angular, и он тоже не работает:
it('should be able to access the internet', function(done) {
inject(function($http) {
expect($http).to.exist;
function reqListener () {
console.log(this.responseText);
expect(true).to.be.true;
done();
}
function errListener() {
console.log(this.responseText);
expect(false).to.be.true;
done();
}
var oReq = new XMLHttpRequest();
oReq.addEventListener("load", reqListener);
oReq.addEventListener("error", errListener);
oReq.open("GET", "http://www.example.org/example.txt");
oReq.send();
}});