Jasmine在规范之间删除AngularJS控制器实例?

时间:2014-11-22 21:02:08

标签: angularjs jasmine

我正在尝试为AngularJS应用程序编写单元测试。下面是一个非常标准的测试模板,工作正常:

describe('Controller: MainCtrl', function () {
  var MainCtrl, scope;
  beforeEach(function() { // <-- what if I remove this
    module('watcomApp');
    inject(function ($controller, $rootScope) {
      scope = $rootScope.$new();
      MainCtrl = $controller('MainCtrl', {
    $scope: scope,
      });
    });
  }); // <-- and this

  it('some spec', function () {
    expect(scope.data).toEqual('something');
  });
});

但是,如果我尝试重用控制器的当前状态并删除 beforeEach:

describe('Controller: MainCtrl', function () {
  var MainCtrl, scope;
  module('watcomApp');
  inject(function ($controller, $rootScope) {
  ...

它停止工作,因为 scope.data 变得未定义。 问题是:范围会发生什么变化?我希望它能在规格之间持续存在,因为它是全球性的。

0 个答案:

没有答案