为什么message属性未定义?

时间:2015-12-19 14:36:03

标签: angularjs angularjs-directive angularjs-scope jasmine karma-jasmine

我在Angularjs中创建一个控制器并尝试使用Jasmine测试该控制器。我收到此错误无法读取属性'消息'未定义的为什么?

Here是我的代码。

控制器

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

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

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

测试

(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();

  })
})

})();

任何更新?在测试中我得到了这个错误..?我们可以对这个控制器进行测试吗?对于角度js代码问题,测试代码上的每一件事都很好。只检查 appspec.js

1 个答案:

答案 0 :(得分:1)

只是一个提示

应用

a

测试

display: inline-block

在你的情况下,测试应该像

(function() {
'use strict';

function HomeController() {
  var home = this;
  home.title = 'Home';
}

angular.module('home.controllers', [])
    .controller('HomeController', HomeController);
})();

查看http://www.bradoncode.com/tutorials/angularjs-unit-testing/以角度

为主要单位测试