首页 > 解决方案 > 如何在angular2中测试window.open

问题描述

我是角度测试的新手。我的控制器中有一个方法可以打开一个像这样的新窗口

public goToTermsOfService() {
this.nativeWindow.open(
  'someurl/' +
    this.translate.currentLang +
    '/Home/License',
  '_blank'
);

}

我应该如何为此编写 angular 的单元测试?

标签: angularunit-testing

解决方案


我会给你一个关键的想法。

尝试open()通过使用为方法创建一个模拟方法spyon,例如

spyOn(_nativeWindow, 'open')
            .and.callFake(function (param) {
                param.open();
            });

因此,当您goToTermsOfService()通过单元测试进行测试时,_nativeWindow会有一个模拟对象而不是真实对象。这就是我使用的方式,它对我很有用。


推荐阅读