У меня есть метод / функция в реальном файле JS (main.js), который выглядит так:
function returnPath() {
return `path=${encodeURIComponent(window.location.href.replace(window.location.origin, ''))}`;
}
Теперь в моем файле спецификации жасмина (mainSpec.js) у меня есть следующий код:
describe('Test returnPath function', () => {
it('test the path string returned', () => {
const window = {
location: {
href: "https://www.example.com/hello/world",
origin: "https://www.example.com/"
}
};
const pathStr = returnPath();
// assert
expect(pathStr).toBe('path=hello%2Fworld');
});
});
Но когда я запускаю свой тест, он терпит неудачу, так как window.location.href не указывает на пользовательский объект, инициализированный в блоке 'it'.
Как внедрить / предоставить объекты, необходимые для фактической функции, из файла спецификации?