Page 43 - 6182
P. 43
Засоби Angular для модульного тестування
Платформа Angular у своєму складі містить потужні засоби
для написання модульних тестів – це набір класів, які побудовані на
базі фреймвору Jasmine. Головний тестовий фреймворк платформи
Angular знаходиться в пакеті @angular/core/testing.
Для тестування рекомендують використовувати наступні
підходи:
якщо потрібно протестувати деякий клас, який має
залежності, зазвичай потрібно вручну налаштовувати їх;
для тестування компонентів необхідно використовувати
класи-помічники для їх ініціалізації.
Тестування компонентів
Для тестування Angular-додатку, необхідно пересвідчитись,
що в тестах доступна потрібна конфігурація, яка декларується в
декораторі @NgModule. Щоб тести запускались коректно,
необхідно задекларувати провайдери, компоненти, а також
імпортувати інші модулі на зразок того, як це робиться в декораторі
@NgModule.
У фреймворку для тестування визначений клас TestBed –
головний постачальник API (Application Programming Interface) для
тестування Angular-додатків і бібліотек. Розглянемо два важливі
методи, які використовуються під час тестування компонентів:
configureTestingModule – метод, який використовує об‘єкт
метаданих в стилі @NgModule для конфігурації модуля в якому
визначений компонент;
compileComponents – метод, який використовується для
компіляції шаблону і стилів компонента.
При використанні інструменту Angular-CLI каркас для
тестування компонента, за замовчуванням, буде генеруватись при
створенні нових компонентів.
Розглянемо деякі особливості, які наведені в середині методу
beforeEach() на рисунку 6.1. Метод TestBed.compileComponents()
виконується асинхронно, компілює всі компоненти, які визначені в
тестовому модулі. Коли метод compileComponents відпрацював,
зовнішні шаблони і CSS файли об‘єднуються в рядок і метод
43