我目前正在测试我正在开发的角度应用程序,并且正在遇到难以测试功能的问题,该功能只会为外部站点打开一个新窗口。当我在函数上运行测试时,出现错误
错误:未实现:window.open
下面是一些代码,第一行是我遇到错误的地方
const blankWindow = window.open('', _blank);
blankWindow.location.href = externalSiteUrl
如何修复此功能以确保不会出现此错误?还有另一种方法可以测试在新位置打开窗户以完全避免此问题吗?
谢谢
答案 0 :(得分:0)
您应该在测试中监视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 函数代替。