相关疑难解决方法(0)

如何测试具有嵌套组件的角度2组件及其自身的依赖关系?(TestBed.configureTestingModule)

我有一个组件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没有自己的依赖项.在这里我很困惑,如果我必须每次导入和重新安装所有其他组件,我怎么能进行单元测试?它看起来像是一项非常大的工作.还有另外一种方法吗?使用具有自己的依赖关系的嵌套组件测试组件的最佳实践是什么?

非常感谢,

斯特凡.

unit-testing jasmine karma-jasmine angular

24
推荐指数
1
解决办法
1万
查看次数

标签 统计

angular ×1

jasmine ×1

karma-jasmine ×1

unit-testing ×1