Модуль углового тестирования установлен неправильно: невозможно разрешить все параметры (ngrx) - PullRequest
0 голосов
/ 18 мая 2018

У меня есть проект Angular CLI 6, в котором я пытаюсь заставить работать тесты. Вот фрагмент моего теста:

beforeEach(() => {
  spyOn(console, 'info');

  TestBed.configureTestingModule({
    providers: [
      ConsoleLoggerEffects,
      provideMockActions(() => actions),
    ],
  });

  effects = TestBed.get(ConsoleLoggerEffects);
});

В ConsoleLoggerEffects введена одна зависимость - Actions наблюдаемый:

@Injectable() export class ConsoleLoggerEffects { constructor(private actions$: Actions) { } }

Это точно соответствует примеру ngrx , но он не работает.

Когда я запускаю тесты, Angular жалуется Error: Can't resolve all parameters for ConsoleLoggerEffects: (?). Я добавил console.log к заводской функции, переданной provideMockActions, и она никогда не выполнялась, поэтому заводская функция даже не выполняется.Позвонил.

Даже если я не использую provideMockActions и сам определяю провайдера, он также не работает:

TestBed.configureTestingModule({
    providers: [
      ConsoleLoggerEffects,
      { provide: Actions, useValue: new ReplaySubject(1)}
    ]
  });

Кто-нибудь знает, что может происходить?

1 Ответ

0 голосов
/ 24 сентября 2018

У меня была та же проблема, и я наконец-то смог ее исправить, отредактировав tsconfig.spec.json, затем удалив node_modules и переустановив их.

Вот так теперь выглядит мой файл конфигурации TS Spec:

Но вы можете следовать за этим в example-app на https://github.com/ngrx/platform

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": ["es2017", "dom"],
    "outDir": "../out-tsc/spec",
    "module": "commonjs",
    "target": "es6",
    "types": ["jest", "node"],
    "baseUrl": ".",
    "rootDir": "./"
  },
  "files": [
    "polyfills.ts"
  ],
  "include": [
    "**/*.spec.ts",
    "**/*.d.ts"
  ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...