У меня есть проект 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)}
]
});
Кто-нибудь знает, что может происходить?