Как jest в Angularjs обрабатывает все мои зависимости модуля - PullRequest
0 голосов
/ 16 марта 2019

Обновлено: я не использовал никакой загрузчик модулей, потому что это старый проект, эм, поэтому я просто импортирую все зависимости в моем index.html через script тег


Мой AngularJS имеетструктура, подобная этой:

  • app.js
angular.module('app', ['LocalStorageModule', 'ngCookies', ...])
  • testController
angular.module('app').controller('testController', function(){})

Теперь я хочу проверить testController, поэтому мой код UT шутки:

  • testController.spec.js
require('./testController.controller')

describe('TestController', () => {
  beforeEach(angular.mock.module('app'));
})

но теперь я получил ошибку:

Module 'app' is not available

, что означает, что я должен импортировать app.js, но если я импортирую app.js, я также получу

Failed to instantiate module LocalStorageModule due to: Module 'LocalStorageModule' is not available!

Итак, мне нужно импортировать все мои зависимости (двадцать и более установленных bower) в каждый тестовый файл?Я думаю, что это не очень хороший способ.Как справиться с этим решением?импортировать все мои компоненты, установленные Bower?

1 Ответ

0 голосов
/ 16 марта 2019

Проблема, похоже, заключается в внедрении зависимостей angular.js.Потому что у вас есть некоторые зависимости, объявленные в вашем модуле приложения.Вам нужно смоделировать модуль приложения, а затем ввести зависимости.

describe('TestController', () => {
  beforeEach(
      angular.mock.module('app')
  );

  let _localStorageModule;
  let _ngCookies;


  beforeEach(
      inject((LocalStorageModule, ngCookies) => {
          _localStorageModule = LocalStorageModule;
          _ngCookies = ngCookies;
      })
  );
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...