0
ログインして、ログインページにリダイレクトします。今私はカルマ - ジャスミン単位テストでこれをテストしたいと思っています。しかし、私がテストを書くと、location.pathは変化しません。AngularJS、ルート解決、場所の変更、ユニットテスト、カルマ・ジャスミン
describe('LoginController', function() {
beforeEach(module('dcApp'));
beforeEach(function() {
var _authenticated = false;
AuthAuthenticatorMock = {
isAuthenticated: function() {
return _authenticated
},
setAuthenticated: function(authenticated) {
_authenticated = authenticated;
},
};
module(function($provide) {
$provide.value('AuthAuthenticator', AuthAuthenticatorMock);
});
});
var $controller;
beforeEach(inject(function(_$route_, _$location_, _$controller_, _AuthAuthenticator_){
// The injector unwraps the underscores (_) from around the parameter names when matching
$route = _$route_;
$location = _$location_;
$controller = _$controller_;
AuthAuthenticator = _AuthAuthenticator_;
}));
describe('Controller activation', function() {
it ('redirects to login if user is not yet logged in', function() {
AuthAuthenticator.setAuthenticated(false);
var $scope = {};
var controller = $controller('HomeController', { $scope: $scope });
expect($location.path()).toBe('/login');
});
});
});
しかし、結果は次のとおりです。
PhantomJS 2.1.1 (Linux 0.0.0) HomeController Controller activation redirects to login if user is not yet logged in FAILED
Expected '' to be '/login'.
今私はスパイにいくつかのドキュメントを見てきましたが、私はこの場所の変更をチェックする方法を得ることはありません。