茉莉花单元测试Angularjs

时间:2017-04-30 02:19:08

标签: angularjs node.js jasmine bower

我是单元测试的新手。我已经按照教程,我拥有一切 通过npm在node.js上配置。我已经完成了一些描述,只是为了让人感觉设置好的东西,我的规格跑者很好。我试图在控制器上进行测试时遇到的问题已经解决了,但是我遇到了困难,并试图解决问题一段时间,但我仍然得到同样的错误,所以我想我会伸手去拿。

我试图在LoginController上做一个简单的测试,但我继续得到同样的错误。我无法指出我做错了什么。试图克服这个障碍。

TypeError:angular.mock.module不是函数:

spec runner index html file。

<!doctype html>
   <html>
 <head>
<title>Jasmine Spec Runner</title>
<link rel="stylesheet" href="../bower_components/jasmine-core/lib/jasmine-core/jasmine.css">
</head>
<body>
<script src="../My Documents/My Website/AngularLogin-
      Registration/js/angular-1.6.0.js"></script>
<script src="../My Documents/My Website/AngularLogin-Registration/js/angular-route-1.6.0.min.js"></script>

<script src="../bower_components/jasmine-core/lib/jasmine-core/jasmine.js"></script>
<script src="../bower_components/jasmine-core/lib/jasmine-core/jasmine-html.js"></script>
<script src="../bower_components/jasmine-core/lib/jasmine-core/boot.js"></script>

<!-- include source files here... -->


<!--<script src="//code.jquery.com/jquery-3.1.1.min.js"></script>-->
<!--<script src="//code.angularjs.org/1.6.0/angular-cookies.min.js"></script>-->
<script src="../My Documents/My Website/AngularLogin-Registration/js/angular-mock.js"></script>
<script src="../My Documents/My Website/AngularLogin-Registration/js/app.js"></script>
<script src="../My Documents/My Website/AngularLogin-Registration/login/login.controller.js"></script>

<!-- include spec files here... -->
<script src="spec/test.js"></script>

这是我的测试文件。

describe('LoginController test', function () {
    beforeEach(angular.mock.module('app'));
    beforeEach(angular.mock.inject(function(_$controller_){
        $controller = _$controller_;
}));
describe('$scope.grade', function() {
      it('sets the strength to "strong" if the password length is >8 chars', 
       function() {
        var $scope = {};
        var controller = $controller('LoginController', { $scope: $scope });
  $scope.password = 'longerthaneightchars';
  $scope.grade();
      expect($scope.strength).toEqual('strong');
    });
       });
          });

提前感谢你 PDH

1 个答案:

答案 0 :(得分:0)

在spec runner html中加载angular-mocks库,请确保在angular.js之后加载它。

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular-mocks.js"></script>

您也可以使用bower下载js文件而不是CDN。