Скажем, у меня есть функция полезности, которая для простоты (реальная вещь сложна и неактуальна) возвращает текущую оконную последовательность.
var someUtilityFunction = () {
return window.location.search.substring(1);
};
Теперь я хочу unit test эту функцию в qUnit (не уверен, что тестовый жгут имеет отношение или нет):
test('#1 someUtilityFunction works', function () {
// setup
var oldQS = window.location.search;
window.location.search = '?key1=value1&key2=value2&key3=value3';
var expectedOutput = 'key1=value1&key2=value2&key3=value3';
// test
equals(someUtilityFunction(),
expectedOutput,
'someUtilityFunction works as expected.');
// teardown
window.location.search = oldQS;
});
Проблема заключается в том, что установка window.location.search
в другую цепочку вызывает перезагрузку страницы, по сути входя в бесконечный цикл запроса. Есть ли способ вычеркнуть объект window.location без внесения каких-либо изменений в функцию someUtilityFunction
?