【发布时间】:2020-03-31 08:54:11
【问题描述】:
根据标题,如何在 Angular 单元测试中提供ControlContainer?
产生的错误如下:
NullInjectorError: StaticInjectorError(DynamicTestModule)[ChildFormComponent -> ControlContainer]:
StaticInjectorError(Platform: core)[ChildFormComponent -> ControlContainer]:
NullInjectorError: No provider for ControlContainer!
我尝试提供ControlContainer:
beforeEach(() => {
const parentFixture = TestBed.createComponent(ParentFormComponent);
const parentComponent = parentFixture.componentInstance;
parentComponent.initForm();
fixture = TestBed.createComponent(ChildFormComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
我见过其他使用的解决方案:
declarations: [
...MY_DECLARATIONS
],
imports: [
...MY_IMPORTS
],
providers: [
{
provide: ControlContainer,
useValue: MyFormGroupDirective
}
]
我没有运气,但是如果这里有任何人能够提供一些启示;我将不胜感激。
【问题讨论】:
-
你是否包含了相关的表单模块?
-
@jonrsharpe 是的,
ReactiveFormsModule和FormsModule已导入。还是不行。
标签: angular typescript unit-testing angular-test ts-jest