我在控制器中有这个:
$scope.foo = function(){
return RolesService.remove({
data: role
})
.then(function (v) {
if (!(v && v.cdtError)) {
$window.location.reload();
}
});
}
$window
被注入控制器
然后在我的单元测试中:
let $window = {location: {reload: sinon.spy()}};
module(function ($provide) {
$provide.value('$window', $window);
$window.onbeforeunload = sinon.spy();
});
上面的存根似乎没有做任何事情,因为我仍然得到这个错误:
您的部分测试会重新加载整页!
如何将window.location.reload
存根以便不会发生这种情况?
我在Karma Github问题跟踪器上看到了一些内容,但我无法找到答案。
答案 0 :(得分:1)
这似乎可以解决问题:
beforeEach(function(){
angular.mock.module('app', function ($provide) {
let $window = {location: {reload: sinon.spy()}};
$provide.value('$window', $window);
$window.onbeforeunload = sinon.spy();
});
});