Я пытаюсь протестировать модуль (использующий браузер для сборки), который выполняет XMLHttpRequest. Модуль выглядит так:
module.exports = function(year, cb) {
var xhr = new XMLHttpRequest();
xhr.open('GET', encodeURI('data/' + year + '.json'));
xhr.onload = function() {
if (xhr.status === 200) {
var counties = JSON.parse(xhr.responseText);
cb(counties);
} else {
cb(xhr.status);
}
};
xhr.send();
};
Мой тест Жасмин выглядит так:
var counties = require('myModule');
describe('did ajax call respond', function() {
var countyList;
beforeEach(function(done) {
counties(2015, function(data) {
countyList = data;
});
done();
});
it('should return', function(done) {
console.log(countyList);
expect(countyList).not.toEqual({});
expect(countyList).not.toBeUndefined();
done();
});
});
Я видел этот вопрос - Почему Jasmine не выполняется it() в этом асинхронном тесте? - похоже, это то же самое, но все еще не работает.
Я получаю undefined
за countyList
. Мой выход жасмина:
did ajax call respond
X should return
Expected undefined not to be undefined. (1)
Спасибо за любую помощь!