私はカルマでユニットテストの周りに頭を上げています。私は状態遷移をチェックしたいので、このテストを作成しました。アプリはlanding
州に行くと始まり、そこからmain
に行きたいと思っています。これは、そうlogin
にリダイレクトされます安全なルートである:私は私のapp.jsでテストの状態遷移を角度で単位化する方法は?
it('should go to loginpage before main', function() {
$scope.$apply();
expect($state.current.name).toBe('landing');
$state.transitionTo('main');
$scope.$apply();
expect($state.current.name).toBe('login');
});
:
$rootScope.$on('$stateChangeStart', function (event,next) {
console.log('statechange from:', $state.current.name)
//console.log('statechange to:',$state)
if (!next.authenticate) {
return;
}
//if next state is secure then check whether user is logged in:
if (next.authenticate) {
event.preventDefault();
$state.transitionTo('login');
console.log('goto login');
}
});
私はカルマと私のテストを実行すると、私が手:
Chrome 51.0.2704 (Mac OS X 10.11.4) secure tests should go to loginpage before main FAILED
Expected '' to be 'landing'.
at Object.<anonymous> (/Users/dimitri/karma/basic_karma/appSpec.js:23:37)
Expected '' to be 'login'.
$state.current.name
はなぜ空ですか?
githubのrefの:https://github.com/dimitri-a/basic_karma