如何测试角度材料对话框是否打开

问题描述

我正在编写一个单元测试,以检查函数调用是否打开了Material对话框元素。我得到False,而预期结果为True。组件功能是:

x.component.ts

openCartDialog(): void {
        this.dialog.open(CartComponent);
        this.isCartDialogOpen = true;
}

我的x.component.spec.ts文件具有以下代码并进行测试:

export class DialogMock {
    open(): void {
        return;
    }
}

beforeEach(async(() => {

    TestBed.configureTestingModule({
        declarations: [MainPageComponent,CartComponent,ConfirmButtonComponent],imports: [RouterTestingModule,HttpClientModule,MatTabsModule,MatDialogModule],providers: [
            { provider: MatDialog,useClass: DialogMock },],}).compileComponents();
}));

beforeEach(() => {
    fixture = TestBed.createComponent(MainPageComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
});


it('should open the cart dialog',() => {
       component.openCartDialog();
       expect(component.isCartDialogOpen).toBeTrue();
});

我认为问题出在我的beforeEach()上,其中CartComponent没有正确实例化。购物车组件还在模板中使用其他组件...在此代码中我仅包含ConfirmButtonComponent,但还有更多。

感谢您的帮助!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)