Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带Karma的AngularJS-我如何为控制器编写单元测试_Angularjs_Unit Testing_Controller_Karma Jasmine - Fatal编程技术网

带Karma的AngularJS-我如何为控制器编写单元测试

带Karma的AngularJS-我如何为控制器编写单元测试,angularjs,unit-testing,controller,karma-jasmine,Angularjs,Unit Testing,Controller,Karma Jasmine,与以下代码相同: 我不知道如何为控制器编写单元测试 如何在出厂时为控制器编写一个测试,在没有出厂时如何编写?以下是AngularJS中控制器单元测试的示例: angular.module('myModule', []) .controller('myController', function($scope) { $scope.num = 2; $scope.doSomething = function() { $scope.num += 2; } })

与以下代码相同:

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


如何在出厂时为控制器编写一个测试,在没有出厂时如何编写?

以下是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);
  });
});
我不完全清楚你所说的“你将如何在工厂编写单元测试,而在没有工厂的情况下如何编写单元测试?”。请在评论中解释更多,我会更新这个答案。祝你好运