Jasmine + Karma + AngularJS路由器测试 - TypeError:undefined不是对象(评估' $ state.href')angularJS测试路由器

时间:2016-08-03 22:40:25

标签: angularjs karma-jasmine

我有错误TypeError:undefined不是一个对象(评估' $ state.href')但是无法弄清楚问题是什么。 这是我的路由器

angular.module('ps.auth')
  .config(function ($stateProvider) {
    $stateProvider.state('login', {
      url: '/login/:username',
      views: {
        'content': {
          templateUrl: 'auth/login.html',
          controller: 'AuthController'
        }
      },
      authNotRequired: true
    })
    .state('logout', {
        url: '/logout',
        controller: 'LogoutCtrl',
        authNotRequired: true
    });
  });

这是我的单元测试

'use strict';
describe('router  check', function() {
  describe('router check login', function() {
    var view = 'auth/login.html',
      myUserName = 'userName',
      state = 'login',
      $state, $templateCache;

    beforeEach(function() {
      module('ps.auth');

      inject(function(_$state_, _$templateCache_) {
        $state = _$state_;
        $templateCache = _$templateCache_;
      });

      $templateCache.put(view, '');
      $state.go('login');
      $state.$apply();
    });

    it('should map state login to url /login ', function() {
      console.log('********** My State $state = ', $state);
      expect($state.href(state, { username: myUserName})).toEqual('/login/userName');
      // expect($state.href('login', {})).toEqual('#/login');
    });
  });
});

返回的错误消息是:TypeError:undefined不是对象(评估' $ state.href')

如果您知道此问题的答案,请提供帮助

0 个答案:

没有答案