$ Испустите генерирует ошибку при использовании testacular (карма)

голоса
0

Это, скорее всего, я не зная точно, как использовать Карму. Скажем, у меня есть angularJS тест шаблонный, как так

«Использовать строгий»;

описывают ( 'Controller: MainCtrl', функция () {

  // загрузить модуль контроллера
  beforeEach (модуль ( 'testingApp'));

  вар MainCtrl,
    объем;

  // Инициализировать контроллер и макет сферы
  beforeEach (инъекционные (функция ($ контроллера) {
    Объем = {};
    MainCtrl = $ контроллера ( 'MainCtrl', {
      $ Сфера: сфера
    });
  }));

  он ( «должен приложить список awesomeThings в сферу», функция () {
    ожидать (scope.awesomeThings.length) .toBe (3);
  });
});

если вставить $ испускает в моем контроллере, как так

«Использовать строгий»;

angular.module ( 'testingApp')
  .controller ( 'MainCtrl', функция ($ масштаб) {
    $ Scope.awesomeThings = [
      'HTML5 Шаблонный',
      'AngularJS',
      'Карма'
    ];

    . $ Объем $ испускают ( 'HelloWorld');
  });

Мой тест в настоящее время не удается, и говорит

TypeError: Объект # не имеет метода '$ Emit'
Любая помощь высоко ценится!

Задан 08/04/2013 в 03:37
источник пользователем
На других языках...                            


1 ответов

голоса
1

Вместо того чтобы предоставить пустой объект в качестве области, следует использовать:

$scope = $rootScope.$new()

Так что ваш код будет выглядеть так:

// Initialize the controller and a mock scope
  beforeEach(inject(function ($controller) {
    scope = $rootScope.$new();
    MainCtrl = $controller('MainCtrl', {
      $scope: scope
    });
  }));
Ответил 08/04/2013 в 08:35
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more