我有一个组件A,它在模板中使用组件B,c,D:
###template-compA.html
<comp-b></comp-b>
<comp-c [myinput]="obj.myinput"></comp-c>
<comp-d ></comp-d>
Run Code Online (Sandbox Code Playgroud)
...等等
为简化起见,假设它们只是组件A中的一个指令:
###template-compA.html
<comp-b></comp-b>
Run Code Online (Sandbox Code Playgroud)
我的comp-b有自己的依赖项(服务或其他comp).
如果我想以这种方式测试comp-a:
TestBed.configureTestingModule({
declarations: [comp-A],
imports: [ReactiveFormsModule],
}).overrideComponent(FAQListComponent, {
set: {
providers: [
{ provide: comp-AService, useValue: comp-AListSVC }
]
}
})
.compileComponents();
Run Code Online (Sandbox Code Playgroud)
它不会正常工作.所以我这样做:
TestBed.configureTestingModule({
declarations: [comp-A, comp-B],
imports: [ReactiveFormsModule],
}).overrideComponent(FAQListComponent, {
set: {
providers: [
{ provide: comp-AService, useValue: comp-AListSVC }
]
}
})
.compileComponents();
Run Code Online (Sandbox Code Playgroud)
它也不起作用,因为comp-b没有自己的依赖项.在这里我很困惑,如果我必须每次导入和重新安装所有其他组件,我怎么能进行单元测试?它看起来像是一项非常大的工作.还有另外一种方法吗?使用具有自己的依赖关系的嵌套组件测试组件的最佳实践是什么?
非常感谢,
斯特凡.