Тесты и покрытие кода частными методами с Angular и Жасмин / Карма - PullRequest
0 голосов
/ 18 февраля 2020

Итак, я получил эти методы на своем компоненте кнопки.

export class SidebarButtonComponent implements OnInit {

  private subscribeToRouter(): void {
    this.router.events.subscribe(route => {
      if (route instanceof NavigationEnd) {
        this.isSelected(route.urlAfterRedirects);
      }
    });
  }

  private isSelected(route: string): void {
    if (this.checkRoute(route)) {
      this.selected = true;
    } else {
      this.selected = false;
    }
  }

  private checkRoute(route: string): boolean {
    return route.includes(this.link);
  }

}

Я знаю, что не могу получить доступ к закрытым методам в моих файлах спецификаций, но покрытие кода из Angular говорит, что я не знаю покрыть это:

59,09% Заявления 13/22 37,5% Филиалы 3/8 42,86% Функции 3/7 52,63% Линии 10/19

Какие лучшие методы для тестировать эти частные тесты или, по крайней мере, игнорировать их при покрытии кода?

1 Ответ

0 голосов
/ 18 февраля 2020

Модификаторы доступа в машинописи используются только во время компиляции. Вы не можете напрямую обращаться к ним, как это

component.privateMethod(); // not accessible 

Но вы можете получить к ним доступ с помощью любого:

(component as any).privateMethod();

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

...