【发布时间】:2017-12-18 21:23:19
【问题描述】:
我在控制器中有这个:
$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 问题跟踪器上看到了一些内容,但我找不到答案。
【问题讨论】:
-
也许我在错误的地方调用
module(),我应该把它放在beforeEach钩子里吗?
标签: javascript angularjs unit-testing karma-runner