gpt4 book ai didi

javascript - 窗口位置分配的单元测试 Angular 问题

转载 作者:行者123 更新时间:2023-11-29 21:52:02 25 4
gpt4 key购买 nike

在我的 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),但同样的方法对我不起作用。任何想法?

最佳答案

你的函数需要注入(inject) $window,而不是 window

$scope.myFunction = function($window){
//other code
$window.location.assign(url);
}

正如所写,您正在绕过模拟的 $window 服务并作用于实际的 native 窗口对象。

关于javascript - 窗口位置分配的单元测试 Angular 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28619537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com