У меня есть функция в моем модуле, которая вызывает вызов AJAX, и при успешном ее перенаправлении пользователь. Я хотел проверить эту функцию в Jasmine, но я не могу заставить страницу не перезагружать.Jasmine spyOn вызывает исходную функцию
Вот моя функция:
function my_func() {
$.ajax({
// parameters
success: function(data) {
// does something
reloadPage(path);
}
});
}
function reloadPage(path) {
console.log('got here');
window.location.href = path;
}
В моем тесте я шпионить функцию перезагрузки страницы с:
spyOn($, 'ajax').and.callFake(function(options) {
options.success(data);
});
spyOn(my_module, 'reloadPage');
my_module.my_func();
И когда я бегу моих тестов я получаю это:
LOG LOG: 'got here'
Firefox 42.0.0 (Linux 0.0.0) ERROR
Some of your tests did a full page reload!
Должно ли не reloadPage быть заменено шпионами и НЕ вызваны? Я включил все соответствующие части кода, это «буквально» именно это, но если вам нужно, чтобы я предоставил больше информации, дайте мне знать!
Вы пробовали поменять местами порядок установки шпионов? – Dan
Да, по-прежнему такая же ошибка. – Vedran