Čo je Integračný Test?
Integračný test overuje správnu spoluprácu dvoch alebo viacerých komponentov systému. Na rozdiel od unit testov netestuje izolované funkcie, ale interakcie medzi nimi — napríklad komunikáciu s databázou alebo API.
Definícia Integračný Test
Čo je integračný test
Integračné testovanie je fáza testovania softvéru, v ktorej sa jednotlivé moduly kombinujú a testujú ako skupina. Cieľom je odhaliť chyby v rozhraniach a interakciách medzi integrovanými komponentmi. Integračné testy sa nachádzajú v strede testovacej pyramídy — medzi unit testami (spodok) a E2E testami (vrchol).
Prístupy k integračnému testovaniu
- Big Bang — všetky moduly sa integrujú naraz a testujú spoločne
- Top-Down — testovanie začína od najvyšších modulov a postupne pridáva nižšie
- Bottom-Up — testovanie začína od najnižších modulov smerom nahor
- Sandwich (hybridný) — kombinácia top-down a bottom-up prístupu
Čo sa typicky testuje
Integračné testy overujú komunikáciu medzi aplikáciou a databázou, volania na externé API, spracovanie HTTP požiadaviek cez middleware a spoluprácu mikroslužieb. Na rozdiel od unit testov môžu používať reálnu databázu (často testovaciu inštanciu) alebo nástroje ako Testcontainers, ktoré spúšťajú závislosti v Docker kontajneroch.
Praktický príklad
Príklad: Máte e-shop s API endpointom POST /api/orders, ktorý vytvorí objednávku.
Integračný test overí celý tok:
- Odošle HTTP požiadavku na endpoint s údajmi objednávky
- Overí, že sa záznam správne uložil do databázy
- Skontroluje, že sa odoslal notifikačný e-mail
- Overí, že API vráti správny status kód (201 Created) a údaje objednávky
Často kladené otázky
Aký je rozdiel medzi unit testom a integračným testom?
Unit test testuje jednu funkciu izolovane — závislosti sa nahrádzajú mockmi. Integračný test testuje spoluprácu reálnych komponentov — napríklad či aplikácia správne zapisuje do databázy.
Kedy písať integračné testy?
Integračné testy sú dôležité pri práci s databázou, externými API, súborovým systémom alebo medzi mikroslužbami. Píšte ich pre kritické toky aplikácie, kde zlyhanie interakcie medzi komponentmi môže spôsobiť vážne problémy.
Sú integračné testy pomalšie než unit testy?
Áno, integračné testy sú zvyčajne pomalšie, pretože pracujú s reálnymi závislosťami (databáza, sieť). Preto ich je v testovacej pyramíde menej než unit testov. Nástroje ako Testcontainers pomáhajú zrýchliť ich spúšťanie.
Súvisiace pojmy
Potrebujete pomôcť s webom?
Napíšte mi a poradím vám s vaším projektom. Prvá konzultácia je zadarmo a nezáväzná.