Невозможно написать контрольный пример кармы-жасмина для диалогового окна с пользовательским ковриком. TypeError: Невозможно прочитать свойство 'textContent' из null - PullRequest
0 голосов
/ 20 мая 2019

Я перехожу по ссылке ниже, чтобы проверить пользовательский диалог.http://angular -tips.com / blog / 2018/02 / testing-angular-material-dialog-templates / В своем шаблоне диалога я использовал еще один пользовательский компонент DialogFileImportComponent, как показано ниже:

<div class="header-row">
<span class="dialog-title">Edit File</span>
<mat-icon class="cursor-pointer clear" (click)="close()">clear</mat-icon>
</div>
<file-form (fileSubmit)="processImport($event)" (fileString)="validateFile($event)" 
[isFromEdit]="true" [feedID]="data.fileFeedId" [feedDescription]="data.fileFeedName" [comments]="data.comments" 
[tempUrl]="data.tempUrl" [descList]="data.descList" [fileName]="data.fileName" [fileSubmitionStatus]="data.fileSubmissionStatus" 
[fileUploadError]="data.fileUploadError" ></file-form> 

Я сделал все, что они упомянули и как показано ниже.Кроме того, я добавил ImportFileFormModule 'в разделе импорта

@Component({
  template: ''
})
class NoopComponent { }

const TEST_DIRECTIVES = [
  DialogFileImportComponent,
  NoopComponent
];

@NgModule({
  imports: [MatIconModule, MatDialogModule, NoopAnimationsModule,ImportFileFormModule],
  exports: TEST_DIRECTIVES,
  declarations: TEST_DIRECTIVES,

  entryComponents: [
    DialogFileImportComponent
  ],
})
class DialogTestModule { }

и создал тестовый стенд, как показано ниже

beforeEach(() => {
    TestBed.configureTestingModule({
      imports: [DialogTestModule,ImportFileFormModule],
      schemas: [NO_ERRORS_SCHEMA, CUSTOM_ELEMENTS_SCHEMA],
      providers: [
        {
          provide: OverlayContainer, useFactory: () => {
            overlayContainerElement = document.createElement('div');
            return { getContainerElement: () => overlayContainerElement };
          }
        }
      ]

    });
    dialog = TestBed.get(MatDialog);
    fixture = TestBed.createComponent(NoopComponent);
  });

, и добавил набор тестов, как показано ниже

it('shows information with alert  details', () => {
    const config = {
      data: {
        type: 'alert',
        flag: 'saveasset',
        title: 'Confirmation',
        content: `Optional information has not been entered for 
        assets. Do you wish to wish to continue without entering these information ?`,
        buttonBlock: {
          saveButtonText: 'Ok',
          closeButtonText: 'Cancel'
        },
        tempUrl: 'sample',
        descList: ['aaa','bbbb'],
        fileName: null,
        fileSubmissionStatus: null,
        fileUploadError: null,
        fileFeedId:'',
        comments:'asasas'
      }
    };

    dialog.open(DialogFileImportComponent, config);

    fixture.detectChanges(); // Updates the dialog in the overlay

    const h2 = overlayContainerElement.querySelector('#mat-dialog-title-0');
    const button = overlayContainerElement.querySelector('button');

    expect(h2.textContent).toBe('Confirmation');
    expect(button.textContent).toBe('Ok');
  });

во время выполнения тестового примера я получаю сообщение об ошибке: Ошибка типа: Не удается прочитать свойство 'textContent' из null

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...