angular 中的单元测试 $window.location.reload()

unit testing $window.location.reload() in angular

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

Some of your tests did a full page reload!

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

TypeError: 'undefined' is not a function (evaluating 't.location.reload()')

我的测试是这样的:

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

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

肯定有一些明显的错误我无法发现,因为我在另一个几乎相同的测试中这样做并且工作正常。有什么建议吗?

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

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