---
title: "Testy jednostkowe"
description: "Testy jednostkowe sprawdzają pojedyncze funkcje kodu w izolacji. Poznaj zasadę AAA, mockowanie, pokrycie kodu i miejsce testów jednostkowych w pipeline CI/CD."
url: "https://nodea.pl/pl/slownik-pojec/testy-jednostkowe"
lang: "pl"
updated: "2026-07-13"
---

# Testy jednostkowe

> Testy jednostkowe (ang. unit tests) to automatyczne testy weryfikujące poprawność najmniejszych, izolowanych fragmentów kodu — pojedynczych funkcji lub metod — bez udziału bazy danych, sieci czy innych zależności zewnętrznych.

**Testy jednostkowe** (ang. *unit tests*) to automatyczne testy weryfikujące poprawność najmniejszej, dającej się wyodrębnić części programu — zwykle pojedynczej funkcji, metody lub klasy — sprawdzanej w całkowitej izolacji od reszty systemu. Ich celem jest udowodnienie, że dany fragment logiki zwraca oczekiwany wynik dla konkretnych danych wejściowych, zanim kod trafi do większej całości.

## Jak działają testy jednostkowe?

Pojedynczy test zwykle realizuje wzorzec **AAA**: *Arrange* (przygotuj dane i obiekt do przetestowania), *Act* (wywołaj testowaną metodę) i *Assert* (sprawdź, czy wynik zgadza się z oczekiwaniem). Kluczowa jest izolacja — wszystkie zależności zewnętrzne, takie jak baza danych, API czy zegar systemowy, zastępuje się atrapami (*mock*, *stub*, *fake*). Dzięki temu test jest szybki, deterministyczny i sygnalizuje wyłącznie błąd w badanym fragmencie, a nie w jego otoczeniu. Testy pisze się w dedykowanych frameworkach — PHPUnit czy Pest w PHP, Jest w JavaScripcie, pytest w Pythonie — a ich sumaryczne **pokrycie kodu** (code coverage) pokazuje, jaki odsetek linii został wykonany.

## Zastosowanie w praktyce

Testy jednostkowe są fundamentem tak zwanej piramidy testów: powinno być ich najwięcej, bo są tanie i szybkie. Uruchamia się je automatycznie w potoku [CI/CD](https://nodea.pl/pl/slownik-pojec/ci-cd) przy każdym commicie — jeśli któryś się nie powiedzie, zmiana nie trafia dalej. Chronią przed [regresją](https://nodea.pl/pl/slownik-pojec/testy-regresyjne): po refaktoryzacji od razu widać, czy dawna funkcjonalność wciąż działa. W metodyce [TDD](https://nodea.pl/pl/slownik-pojec/tdd) test powstaje jeszcze przed kodem produkcyjnym i wyznacza jego kontrakt. W praktyce dobrze napisany zestaw testów jednostkowych skraca [debugowanie](https://nodea.pl/pl/slownik-pojec/debugowanie) — zamiast ręcznie klikać przez aplikację, programista widzi w kilka sekund, który warunek brzegowy przestał być spełniany. Warto testować szczególnie logikę obliczeniową, walidacje i przypadki brzegowe (puste dane, wartości ujemne, przekroczenia zakresu), bo to tam najczęściej rodzą się błędy.

### Czym różnią się testy jednostkowe od integracyjnych?

Test jednostkowy sprawdza jeden fragment kodu w pełnej izolacji, zastępując wszystkie zależności atrapami. Test integracyjny weryfikuje, czy kilka współpracujących komponentów — na przykład kod i realna baza danych — działa razem poprawnie. Testy jednostkowe są szybsze i liczniejsze, integracyjne wolniejsze, ale bliższe rzeczywistości.

### Czy 100% pokrycia kodu oznacza brak błędów?

Nie. Pokrycie mówi jedynie, które linie zostały wykonane podczas testów, a nie czy asercje sprawdzają właściwe rzeczy. Można mieć pełne pokrycie i nadal przeoczyć błąd logiczny. Pokrycie to wskaźnik pomocniczy, a nie gwarancja jakości.

## Powiązane

- [Testy integracyjne](https://nodea.pl/pl/slownik-pojec/testy-integracyjne)
- [Testy regresyjne](https://nodea.pl/pl/slownik-pojec/testy-regresyjne)
- [TDD](https://nodea.pl/pl/slownik-pojec/tdd)
- [CI/CD](https://nodea.pl/pl/slownik-pojec/ci-cd)
- [Debugowanie](https://nodea.pl/pl/slownik-pojec/debugowanie)

---

Wersje językowe: [en](https://nodea.io/en/glossary/unit-testing.md)  
Spis treści witryny: [llms.txt](https://nodea.pl/pl/llms.txt)
