Спасибо @KiraAG за комментарий и удалось выяснить, что требовалось по предоставленной ссылке, поэтому размещайте ответ здесь на тот случай, если кто-нибудь еще столкнется с этим вопросом
Таким образом, в вашем тесте вам нужно provide
экземпляр ControlContainer
в вашем тестовом модуле, в основном это будет FormGroupDirective
или FormControlDirective
в зависимости от того, что вы ожидаете передать вашему компоненту. .
Например, в вашем тестовом файле создайте FormGroup
, который представляет часть формы, которую вы используете
const fg: FormGroup = new FormGroup({
'answer': new FormControl(''),
...
});
Затем создайте FormGroupDirective
и установите для свойства form
значение FormGroup
, созданное выше
const fgd: FormGroupDirective = new FormGroupDirective([], []);
fgd.form = fg;
Теперь при настройке тестового модуля вы можете указать ControlContainer
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [TestingModule],
declarations: [ScoreCardComponent],
providers: [
{ provide: ControlContainer, useValue: fgd }
]
schemas: [NO_ERRORS_SCHEMA]
})
.compileComponents();
}));
И все, инжектор конструктора удовлетворен.