Исправление ошибки: не реализовано: window.open во время углового тестирования - PullRequest
0 голосов
/ 28 декабря 2018

В настоящее время я тестирую угловое приложение, над которым я работаю, и я испытываю трудности с тестированием функции, которая просто откроет новое окно для внешнего сайта.Когда я запускаю тесты для своей функции, я получаю сообщение об ошибке

Ошибка: не реализовано: window.open

Ниже приведен код, в первой строке которого я получаю сообщение об ошибке

const blankWindow = window.open('', _blank);
blankWindow.location.href = externalSiteUrl

Как мне исправить эту функцию, чтобы я не получил эту ошибку?Есть ли другой способ проверить открытие окна в новом месте, чтобы вообще избежать этой проблемы?

Спасибо

1 Ответ

0 голосов
/ 28 декабря 2018

Вы должны шпионить за window.open в своем тесте.

 const windowOpenSpy = spyOn(window, 'open');

, и вы можете проверить, был ли он вызван из вашего метода или вашими действиями:

expect(windowOpenSpy).toHaveBeenCalledWith(externalSiteUrl);

Обновление: Если вы хотите проверить, что open был запущен, вы должны сделать:

spyOn(window, 'open').and.callThrough()

...

expect(window.open).toHaveBeenCalled()

.and.callThrough() действительно важен.Если вы не используете его, то обычный open будет заменен на dummy / mock , которая ничего не делает.

...