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');
}));
我在我的控制器中做了一个 $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');
}));