Jasmine,'Controller'不是一个函数,未定义

时间:2016-03-03 07:08:01

标签: javascript angularjs unit-testing karma-jasmine

我一直在尝试创建一个样本单元测试,但它一直给我一个错误“Argument'CalcController'不是一个函数,未定义”。

我已经看到所有带有相同标题的问题,并在stackoverflow中尝试了他们的解决方案,但似乎它们对我不起作用。

calc.controller.js

routes.yml

calc.module.js

Director:
  rules:
    'teams//$Action/$ID/$Name': 'TeamController'
    'player/': 'PlayerController'
    '': 'HomeController'

calc.specs.js

(function () {
  'use strict';

  angular
    .module('app.calc')
    .controller('CalcController', CalcController);

  /** @ngInject */
  function CalcController($scope) {

    $scope.password = '';
    $scope.grade = function () {
      var size = $scope.password.length;
      if (size > 8) {
        $scope.strength = 'strong';
      } else if (size > 3) {
        $scope.strength = 'medium';
      } else {
        $scope.strength = 'weak';
      }
    }
  }
});

如果您注意到为密码输入编写了示例函数,那是因为我从同一项目的工作测试脚本中复制了代码。但显然它的工作方式不同。

干杯

1 个答案:

答案 0 :(得分:1)

calc.controller.js 的自调用函数(function(){...});在结尾处缺少(),这就是它无法找到控制器的原因。