我有一个组件 A,它在其模板中使用组件 B、c、D:
###template-compA.html
<comp-b></comp-b>
<comp-c [myinput]="obj.myinput"></comp-c>
<comp-d ></comp-d>
...etc
为了简化,假设它们只是组件 A 中的一个指令:
###template-compA.html
<comp-b></comp-b>
我的 comp-b 有自己的依赖项(服务或其他 comp)。
如果我想这样测试 comp-a:
TestBed.configureTestingModule({
declarations: [comp-A],
imports: [ReactiveFormsModule],
}).overrideComponent(FAQListComponent, {
set: {
providers: [
{ provide: comp-AService, useValue: comp-AListSVC }
]
}
})
.compileComponents();
它无法正常工作。所以我这样做:
TestBed.configureTestingModule({
declarations: [comp-A, comp-B],
imports: [ReactiveFormsModule],
}).overrideComponent(FAQListComponent, {
set: {
providers: [
{ provide: comp-AService, useValue: comp-AListSVC }
]
}
})
.compileComponents();
它也不起作用,因为 comp-b 没有自己的依赖项。在这里我很困惑,如果我每次都必须导入和重新模拟所有其他组件,我该如何进行单元测试?看起来工作量非常大。还有别的办法吗?使用具有自己的依赖项的嵌套组件测试组件的最佳实践是什么?
多谢,
史蒂芬.