在Jasmine测试中模拟window.location.reload

Vij*_*rai 14 mocking window.location jasmine

window.location.reload在我的javascript中创建了一个函数.

我需要在Jasmine中测试时模拟重载函数,因为它继续循环.

我跑的时候测试顺利grunt jenkins.但不是在浏览器中测试(mozilla/chrome).

这是我的代码片段.

使用Javascript:

window.location.reload();
Run Code Online (Sandbox Code Playgroud)

茉莉花测试:

spyOn(window.location, 'reload').and.callFake(function(){});
Run Code Online (Sandbox Code Playgroud)

有人可以帮我这个吗?

Vij*_*rai 10

感谢您分享您的观点.

我按照建议做了一个工作,但它很成功.

由于window是一个浏览器对象而且无法监视,我只是用JavaScript包装了该函数并在我的测试规范中引用了该函数.

Javascript代码:

var function = windowReload(){
    window.location.reload();
}
Run Code Online (Sandbox Code Playgroud)

windowReload()在需要的地方调用函数.

茉莉花测试:

spyOn(obj, 'windowReload').andCallFake(function(){});
Run Code Online (Sandbox Code Playgroud)