单元测试$ window.location.reload()的角度

时间:2016-01-07 13:23:01

标签: angularjs unit-testing window karma-jasmine

我在我的控制器中执行$window.location.reload()只注入$window,这意味着它会抛出以下错误:

  

您的部分测试会重新加载整页!

为了摆脱这个,你应该模拟窗口对象但是我得到以下错误:

  

TypeError:'undefined'不是函数(评估't.location.reload()')

我的测试看起来像这样:

var authController,
    window = {'location': {}};

beforeEach(inject(function($controller) {
    authController = $controller('AuthController', {
        $window: window
    });
}));

必须有一些显而易见的东西,我做错了,我无法发现,因为我在另一个测试中这样做非常相同,并且工作正常。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

答案是在$window.location.reload()

上使用间谍
beforeEach(inject(function($controller, $window) {
    spyOn($window.location, 'reload');
    authController = $controller('AuthController');
}));