Как создать модульный тест для MatDialog - PullRequest
0 голосов
/ 08 января 2019

Как создать модульный тест для следующих угловых кодов:

Заранее спасибо

export class CancelGroup1PolicyDialogComponent implements OnInit {
  [x: string]: any;

  constructor(public dialog: MatDialog, public dialogRef: MatDialogRef<CancelGroup1PolicyDialogComponent>,
    @Inject(MAT_DIALOG_DATA) public data: any, private policyEnquiryService: PolicyEnquiryService) { }

  ngOnInit() {

  }

  openCancelDetailsDialog(policyResult: IPolicyResult): void {
    const dialogRef = this.dialog.open(CancelGroup1DetailsDialogComponent, {
      data: {
        policyResult
      }
    });

    dialogRef.afterClosed().subscribe(result => {
      if (result) {
        this.dialogRef.close(result);
       } else {
        this.dialogRef.close();
       }

    });
  }
}

Добавление дополнительных сведений в соответствии с требованиями Stackoverflow.

1 Ответ

0 голосов
/ 08 января 2019

Вы можете попробовать что-то вроде ниже:

it('should show Cancel Details Dialog', async(() => {
    component.openCancelDetailsDialog(policyResult);
    fixture.detectChanges();
    fixture.whenStable().then(() => {

        let dialogBox: HTMLCollectionOf<Element> = document.getElementsByClassName('.class-name-available-on-dialog');
        expect(dialogBox).not.toBeNull();

        let restoreText = dialogBox[1].querySelector('.your-dialog-content-class').innerHTML;
        expect(restoreText.toUpperCase()).toContain('your text here');
    });

}));

Edit:

Вы можете попробовать, как показано ниже:

describe('Dialog Test', () => {
    let component: CancelGroup1PolicyDialogComponent;
    let fixture: ComponentFixture<CancelGroup1PolicyDialogComponent>;

    beforeEach(() => {
        TestBed.configureTestingModule({
            imports: [
                TestModule
            ],
            providers: [],
        });
    });

    beforeEach(() => {
        fixture = TestBed.createComponent(CancelGroup1PolicyDialogComponent);
        component = fixture.componentInstance;

    });


    it('should show Cancel Details Dialog', async(() => {
        component.openCancelDetailsDialog(policyResult);
        fixture.detectChanges();
        fixture.whenStable().then(() => {

            let dialogBox: HTMLCollectionOf<Element> = document.getElementsByClassName('.class-name-available-on-dialog');
            expect(dialogBox).not.toBeNull();

            let restoreText = dialogBox[1].querySelector('.your-dialog-content-class').innerHTML;
            expect(restoreText.toUpperCase()).toContain('your text here');
        });

    }));
});

@NgModule({
    imports: [],
    declarations: [],
    entryComponents: [
        CancelGroup1DetailsDialogComponent,
    ],
})
class TestModule {
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...