window 位置分配的单元测试 angular 问题
unit testing angular issue with window location assign
在我的 ctrl 中,我有这段代码可以在函数完成其工作后导航到页面。
$scope.myFunction = function(){
//other code
window.location.assign(url);
}
我的测试代码是这样的。
describe('TEST', function () {
var window;
beforeEach(module(function($provide) {
//dummy window
window = {
location:{href:function(){return 'dummy'},assign:function()
{return 'dummy1'}}
};
// We register our new $window instead of the old
$provide.constant('$window',window);
}));
it("should test",function(){
$scope.myfunction();
});
});
The error that I get is ..Some of your tests did a full page reload! and the test fails.
我已经解决了此处记录的问题 (Unit testing the AngularJS $window service),但同样的方法对我不起作用。任何想法?
您的函数需要注入 $window,而不是 window
$scope.myFunction = function($window){
//other code
$window.location.assign(url);
}
正如所写,您正在绕过模拟的 $window 服务并作用于实际的本机 window 对象。
在我的 ctrl 中,我有这段代码可以在函数完成其工作后导航到页面。
$scope.myFunction = function(){
//other code
window.location.assign(url);
}
我的测试代码是这样的。
describe('TEST', function () {
var window;
beforeEach(module(function($provide) {
//dummy window
window = {
location:{href:function(){return 'dummy'},assign:function()
{return 'dummy1'}}
};
// We register our new $window instead of the old
$provide.constant('$window',window);
}));
it("should test",function(){
$scope.myfunction();
});
});
The error that I get is ..Some of your tests did a full page reload! and the test fails.
我已经解决了此处记录的问题 (Unit testing the AngularJS $window service),但同样的方法对我不起作用。任何想法?
您的函数需要注入 $window,而不是 window
$scope.myFunction = function($window){
//other code
$window.location.assign(url);
}
正如所写,您正在绕过模拟的 $window 服务并作用于实际的本机 window 对象。