У меня есть следующая услуга:
angular.module("services")
.factory("whatever", function($window) {
return {
redirect: function() {
$window.location.replace("http://www.whatever.com");
}
};
});
Как обмануть объект $window
в unit test, чтобы предотвратить перезагрузку страницы при выполнении тестов?
Я попытался использовать
spyOn($window.location, 'replace').andReturn(true);
но он не работает (по-прежнему получена ошибка "Some of your tests did a full page reload!"
) и
$provide.value('$window', {location: {replace: jasmine.createSpy()}})
но я получал ошибку (Error: [ng:areq] Argument 'fn' is not a function, got Object
) с трассировкой стека, указывающей только на angular собственный источник, поэтому он не очень помог...