Ich habe Funktion in meinem Modul, die einen AJAX-Aufruf macht, und bei Erfolg leitet es den Benutzer um. Ich wollte diese Funktion in Jasmine testen, aber ich kann die Seite nicht neu laden.Jasmine spyOn ruft ursprüngliche Funktion
Hier ist meine Funktion:
function my_func() {
$.ajax({
// parameters
success: function(data) {
// does something
reloadPage(path);
}
});
}
function reloadPage(path) {
console.log('got here');
window.location.href = path;
}
In meinem Test habe ich mit dem Reload-Seite Funktion auszuspionieren:
spyOn($, 'ajax').and.callFake(function(options) {
options.success(data);
});
spyOn(my_module, 'reloadPage');
my_module.my_func();
Und wenn ich meine Tests laufen bekomme ich diese:
LOG LOG: 'got here'
Firefox 42.0.0 (Linux 0.0.0) ERROR
Some of your tests did a full page reload!
Sollte nicht reloadPage durch einen Spion ersetzt und nicht aufgerufen werden? Ich habe alle relevanten Code-Teile, es ist "buchstäblich" nur das, aber wenn Sie mich brauchen, um weitere Informationen zur Verfügung zu stellen, lassen Sie es mich wissen!
Haben Sie versucht, die Reihenfolge des Aufbaus des Spions tauschen? – Dan
Ja, immer noch der gleiche Fehler. – Vedran