angular - 如何在angular2中测试window.open
问题描述
我是角度测试的新手。我的控制器中有一个方法可以打开一个像这样的新窗口
public goToTermsOfService() {
this.nativeWindow.open(
'someurl/' +
this.translate.currentLang +
'/Home/License',
'_blank'
);
}
我应该如何为此编写 angular 的单元测试?
解决方案
我会给你一个关键的想法。
尝试open()
通过使用为方法创建一个模拟方法spyon
,例如
spyOn(_nativeWindow, 'open')
.and.callFake(function (param) {
param.open();
});
因此,当您goToTermsOfService()
通过单元测试进行测试时,_nativeWindow
会有一个模拟对象而不是真实对象。这就是我使用的方式,它对我很有用。
推荐阅读
- python - 如何使用 SpaCy 更改自定义 NER 模型再训练的训练数据格式?
- kernel - 为什么 Linux 内核代码是 100Hz 但显示器刷新率可以是 60Hz
- javascript - 使用 Nodejs 构建推荐系统
- javascript - 如何在 p5js 中设置障碍,但您只能通过特定的门进入
- javascript - 将音频 numpy 数组发送到前端 Javascript 以播放声音?
- flutter - 自定义 youtube,如 appbar
- pandas - Pandas saving in text format
- .htaccess - 如何通过 .htacess 将根 URL 重定向到网站的另一个页面 URL?
- xamarin - 未经授权的访问异常 - 访问路径被拒绝 - API29
- javascript - 将错误从 POST 路由传递到 ejs 模板