expect语句适用于$ scope,如何在Karma测试中获取我的init()函数?

时间:2016-08-29 21:09:57

标签: javascript angularjs unit-testing angularjs-scope karma-jasmine

我有一个像这样的Karma测试规范:

'use strict';

describe('Controller: RegistrationCtrl', function () {

  beforeEach(module('stageApp'));

  var RegistrationCtrl, scope;

  beforeEach(inject(function ($controller, $rootScope) {
    scope = $rootScope.$new();
    RegistrationCtrl = $controller('RegistrationCtrl', {
      $scope: scope
    });
  }));

      it('should exist', function () {
      expect(RegistrationCtrl.init).toBeDefined();
  });


  it('should exist', function () {
      expect(scope.testPassword).toBeDefined();
  });


});

我正在尝试访问我的控制器中的init函数,该函数声明如下:

var init = function () {

          $scope.showProfileFeatures = false;
};

我对scope.testPassword的测试工作得很好,init()的测试失败了。除了使用RegistrationCtrl.init尝试它之外,我还尝试了'init',但也失败了。

这是我的控制器中的工作测试密码功能:

$scope.testPassword = function ($event) {

          var password = $scope.regPassword;   
          if (password.length < 8) {
              alert("bad password");
          }
};

1 个答案:

答案 0 :(得分:0)

namespace { // <<<<<<<<<<<<<<<< struct Database { unsigned serial; double calories; double carbs; double sodium; double sugar; }; } 不是您控制器上的公共功能。您需要init$scope.init