Как вызвать (matSortChange) = "sortData (i, $ event)" для модульного тестирования в угловом приложении - PullRequest
0 голосов
/ 10 апреля 2019

Я запускаю юнит-тест для углового приложения.Я хочу вручную вызвать событие matSortChange и убедиться, что метод вызывается при запуске этого события

<table matSort (matSortChange)="sortData(i, $event)" matSortActive="enddate" matSortDirection="asc" matSortDisableClear style="margin:0px;" class="table table-striped table-bordered">

<tr>
  <ng-container *ngFor="let subheader of subheaders; let j = index">
  <ng-container *ngIf="subheader[1] == 'activationid'; else second">
    <th class="headers" style="width:300px;" mat-sort-header=" 
     {{subheader[1]}}">{{subheader[0]}} </th>
</tr>

Ответы [ 2 ]

0 голосов
/ 10 апреля 2019

Надеюсь, это поможет ответить на мой вопрос, это сгенерированный угловой код, я видел это в элементе проверки

 <div class="mat-sort-header-container">
  <button class="mat-sort-header-button" type="button" aria-label="Change sorting for 
   count"> Count </button>

  <div class="mat-sort-header-arrow ng-trigger ng-trigger-arrowPosition" 
   style="transform: translateY(25%); opacity: 0;">
    <div class="mat-sort-header-stem"></div><div class="mat-sort-header-indicator ng- 
     trigger ng-trigger-indicator" style="transform: translateY(0px);">
       <div class="mat-sort-header-pointer-left ng-trigger ng-trigger-leftPointer" 
        style="transform: rotate(-45deg);"></div>
       <div class="mat-sort-header-pointer-right ng-trigger ng-trigger-rightPointer" 
        style="transform: rotate(45deg);"></div>
       <div class="mat-sort-header-pointer-middle"></div>
     </div>
   </div>
</div>

0 голосов
/ 10 апреля 2019

Не пробовал в модульном тесте, но matSortChange срабатывает при нажатии на стрелку для сортировки. Вы можете получить доступ к стрелке из DOM, как

document.getElementsByClassName('mat-sort-header-arrow')[indexOfTheColumn].click()

Это должно вызвать событие matSortChange и не забудьте шпионить за методом sortData, чтобы проверить результат.

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