与Karma一起使用的AngularJS - 如何为控制器编写单元测试

时间:2017-01-23 23:04:29

标签: angularjs unit-testing controller karma-jasmine

代码与:AngualrJS with Karma - how do I write a unit test for a factory?

相同

我不知道如何为控制器编写单元测试。

你如何为工厂的控制器写一个,你怎么写它?

1 个答案:

答案 0 :(得分:1)

以下是AngularJS中控制器单元测试的示例:

angular.module('myModule', [])
  .controller('myController', function($scope) {
    $scope.num = 2;
    $scope.doSomething = function() {
      $scope.num += 2;
    }
  });

测试:

describe('myController', function() {
  var $scope;
  beforeEach(function() {
    module('myModule');
    inject(function($controller, $rootScope) {
      $scope = $rootScope.$new();
      $controller('myController', {
        '$scope': $scope
      })
    });
  });
  it('should increment `num` by 2', function() {
    expect($scope.num).toEqual(2);
    $scope.doSomething();
    expect($scope.num).toEqual(4);
  });
});

我不完全确定你的意思是“你如何用工厂编写单元测试?如何在没有工作的情况下编写它?”。请在评论中解释更多,我会更新这个答案。祝好运!