Я только начинаю с тестирования единицы жасмина и сталкиваюсь с некоторыми проблемами при тестировании своих асинхронных вызовов.Jasmine async call problem
У меня есть вызов ajax, который я пытаюсь проверить, и я попробовал его в консоли, чтобы я знал, что он работает, как я этого хочу. Я думаю, что я тестирую то же самое, что и в консоли, но могу ошибаться.
Вот консоль:
> mg = new MandellMVC()
MandellMVC {getSessionId: function, setSessionId: function, isValidGetFunction: function, getURLPrefix: function, setURLPrefix: function…}
> mg.setUseLocalData(true);
true
> var log = new Log(73936780)
undefined
> log.setLogType('Proc')
true
> log.fetch(mg, function(){console.log('done');})
true
done
локальные данные только изменения между отправкой запроса HTTP на внешнем сервере, или загрузки данных из локального файла.
тест код жасмин здесь:
describe("Log Model", function() {
var mg = new MandellMVC();
mg.setUseLocalData(true);
var log;
beforeEach(function() {
log = new Log(73936780);
});
describe("function fetch", function() {
it("returns false if log type is invalid", function() {
expect(log.fetch(mg, function(){})).toBeFalsy();
});
// Not sure why this needs to be here too?
log = new Log(73936780);
log.setLogType('Proc');
it("should make a real ajax request", function() {
var callback = jasmine.createSpy();
log.fetch(mg, callback);
waitsFor(function() {
return callback.callCount > 0;
});
runs(function() {
expect(callback).toHaveBeenCalled();
});
});
});
});
Первый тест проходит. Но затем вторая дает ошибку timeout: timed out after 5000 msec waiting for something to happen
. Я попытался следовать учебнику, но, видимо, не очень хорошо.
Спасибо, любая помощь очень ценится!
Что Инструменты разработчика (или firebug) говорят о запросе AJAX? Успешно ли это? Кроме того, вы должны перемещать 'beforeEach' внутри внутреннего' описания', потому что он работает только для одного уровня (см. [Docs] (http://pivotal.github.io/jasmine/#section-Setup_and_Teardown)) – scriptin
'beforeEach' и 'afterEach' каскад до вложенных описаний просто отлично. См. Следующий раздел в документах, которые вы связали – Gregg