Component Integration Testing (тестування інтеграції компонентів) — це рівень тестування, на якому перевіряється взаємодія між окремими компонентами (модулями) системи після того, як кожен із них уже був протестований окремо (на рівні модульного тестування / Unit Testing).
Що таке «компонент»?
Компонент — це логічно відокремлений блок програми, який виконує певну функцію. Наприклад, у веб-додатку це можуть бути:
- компонент авторизації,
- компонент роботи з базою даних,
- UI-компонент (форма, таблиця),
- компонент API тощо.
Мета Component Integration Testing
Перевірити, чи правильно взаємодіють між собою окремі компоненти після їх об’єднання. Тобто не просто перевірити, що кожен працює окремо, а що їх зв’язки і передача даних між ними працює без помилок.
Приклад:
У системі є два компоненти:
- LoginComponent — збирає логін/пароль і передає їх до
- AuthService — перевіряє їх у базі даних.
На рівні component integration testing перевіряється:
- Чи правильно LoginComponent викликає AuthService.
- Чи правильно передаються дані (наприклад, JSON з логіном).
- Чи коректно обробляється відповідь (успішний логін або помилка).
Методи реалізації
- Bottom-up — спочатку інтегруються нижчі компоненти (напр., API та база), потім — вищі.
- Top-down — спочатку тестуються зв’язки між вищими рівнями (UI, логіка), замінюючи нижчі моками.
- Big Bang — всі компоненти інтегруються одразу й тестуються разом (не рекомендується через складність локалізації помилок).
- Sandwich (гібридний) — поєднання top-down і bottom-up.
Інструменти
- Для JavaScript/React: Jest + React Testing Library
- Для Java/Backend: JUnit, Mockito
- Для Python: pytest, unittest
- Для інтеграцій: Postman, REST-assured, Cypress (в E2E режимі)
Відмінність від інших рівнів:
| Рівень | Що тестує |
| Unit Testing | Окремий модуль/функція |
| Component Integration Testing | Взаємодію між модулями/компонентами |
| System Testing | Всі компоненти як єдину систему |
| Acceptance Testing | Перевірка на відповідність вимогам клієнта |