Ошибка ввода модуля AngularJS 1.7 для тестов - PullRequest
0 голосов
/ 19 января 2019

В моем приложении AngularJS (1.7.x) есть собственный фильтр, для которого я хочу писать тесты, и я решил использовать Jest для выполнения этой задачи.

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

Для начала, вот упрощенная версия фильтра для цели этого вопроса:

angular.module('app.module').filter('takeTheThing', () =>
  function (parameter1) {
    return `${parameter1} thing!`;
  }
);

И, следуя вышеприведенному уроку, а также прочитав еще один SO вопрос, специфичный для тестирования фильтров AngularJS , я попробовал каждую возможную версию моего простого тестового файла следующим образом , но получил загадочное сообщение об ошибке от Angular об этом :

require('../node_modules/angular/angular.min.js');
require('../node_modules/angular-mocks/angular-mocks.js');

//Commenting or un-commenting this, results in module-related injector errors:
//require('./takeTheThing.filter.js');

describe('The thingerizer', () => {
  let $filter;
  beforeEach(angular.mock.module('app.module'));

  //Injecting this specifically, or _$filter_ still errors:
  beforeEach(inject(takeTheThingFilter => {
    $filter = takeTheThingFilter;
  }));

  //Injecting here instead of in the beforeEach, same issue
  it('should give me something', () => {
    //Calling the specific filter or thru the Angular $filter... Same
    const actual = $filter(1);

    expect(actual).toEqual('1 thing!');
  });
});

Я вырываю волосы, но есть кое-что довольно простое, чего мне не хватает в отношении настройки теста (в частности, как загрузить приложение «правильно» без полной загрузки всего моего приложения). Что дает?

AngularJS: 1,7,5

Угловые издевательства: 1.7.6

Jest: 23.6.0 (я использую gulp-jest, но даже когда я напрямую звоню jest из папки bin, я получаю те же самые ошибки, поэтому я опустил большинство этих деталей здесь)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...