2014-12-01 65 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對象替換。