我正在尝试测试控制器。我能够用angular js制作简单的控制器,并且能够在线测试控制器。这是我的代码

http://plnkr.co/edit/xzvhXHPoUdulOM9clOkQ?p=preview

控制器代码

(function(){
  'use strict';
  angular.module('app.home').controller('homeCntrl',homeCntrl);

  function homeCntrl(){
    var home=this;
    home.clickbtn=function(){

      home.message='test';
      alert(home.message)
    }
  }
})();


但是在我的电脑上测试时无法运行并出现此错误

**Argument 'homecntrl' is not a function, got undefined
        http://errors.angularjs.org/1.4.8/ng/areq?p0=homecntrl&p1=not%20a%20function%2C%20got%20undefined
            at /Users/naveenkumar/Documents/ionic_work/SimpleDemo/bower_components/angular/angular.js:68:12**


这是我的测试代码

(function(){

    'use strict'
    describe('http controller test', function() {

        var $rootScope,
            $scope,
            controller,
            $q,
            $httpBackend;

        beforeEach(function() {
            module('app');

            inject(function($injector) {
                $rootScope = $injector.get('$rootScope');
                $scope = $rootScope.$new();
                controller = $injector.get('$controller')('homecntrl', {
                    $scope: $scope
                })


            })
        })




        describe('Init value', function() {
            it('check name value', function() {
                expect(controller.message).toBeUndefined();
            })

        })

        it('it should be true', function() {
            expect(true).toBeTruthy();

        })
    })


})()


我可以在线测试,但不能在PC上测试

这是我的电脑代码
https://dl.dropbox.com/s/no901z41bza7osm/SimpleDemo.zip?dl=0

请下载并转到项目目录并编写npm install

最佳答案

您应该将控制器名称homeCntrl更新为homecntrl

(function(){
  'use strict';
  angular.module('app.home').controller('homecntrl',homeCntrl);

  function homecntrl(){
    var home=this;
    home.clickbtn=function(){

      home.message='test';
      alert(home.message)
    }
  }
})();


会的。

09-20 07:48