2014-12-01 89 views
0

我的应用程序中的以下代码应该重定向到身份验证服务。我的所有测试都因为初始页面重新加载而失败。

angular('app', []) 
    .run(['$window', function($window) { 
     $window.location = 'auth url' + '&redirect=' + $window.location.href; 
    }; 

测试错误:Some of your tests did a full page reload!

如何将.RUN块内部嘲笑$ window.location的,这样我可以防止页面重载?

回答

1

在茉莉花测试中的$ provide服务中配置$ window。例如:

beforeEach(module("app"), function ($provide) { 
    //mock a $window and $window.location (since $window.location.href is used from mod.run) 
    var $window = {}; 
    $window.location = {}; 

    //configure this value with the provider. 
    $provide.value("$window", $window); 
}); 

现在在您的模块中使用的任何$窗口将被$ window对象替换。