IT Narzędzie do testów

JUnit

Znany też jako:JUnit 5JUnit JupiterJUnit 4

Definicja #

JUnit to open-source'owy framework do pisania i uruchamiania testów jednostkowych w języku Java. Stworzony przez Kenta Becka i Ericha Gammę w 1997 roku, JUnit stał się de facto standardem testowania w ekosystemie Javy i wzorem dla frameworków testowych w innych językach (.NET: NUnit, Python: pytest).

JUnit 5 (Jupiter) to aktualna wersja, gruntownie przepisana w stosunku do JUnit 4 — składa się z trzech subprojektów:

  • JUnit Platform — fundament do uruchamiania testów na JVM; definiuje API dla narzędzi (Maven Surefire, Gradle, IDE)
  • JUnit Jupiter — nowe API do pisania testów (adnotacje @Test, @BeforeEach, etc.) i rozszerzeń (Extension API)
  • JUnit Vintage — backward compatibility z testami JUnit 3 i 4

Kluczowe adnotacje JUnit 5:

  • @Test — oznacza metodę testową
  • @BeforeEach / @AfterEach — setup i teardown przed/po każdym teście
  • @BeforeAll / @AfterAll — setup/teardown dla całej klasy testowej (metody statyczne)
  • @ParameterizedTest + @ValueSource, @CsvSource, @MethodSource — testy parametryczne
  • @Nested — zagnieżdżone klasy testowe do grupowania powiązanych testów
  • @DisplayName — czytelna nazwa testu w raportach
  • @ExtendWith — integracja z Mockito, Spring, itp.

Asercje w JUnit 5 (org.junit.jupiter.api.Assertions): assertEquals, assertTrue, assertThrows, assertAll.

Zastosowania #

JUnit stosuje się do:

  • Testów jednostkowych logiki biznesowej — weryfikacja poprawności metod, klas domenowych i serwisów w izolacji od bazy danych i innych zależności
  • Testów integracyjnych z Spring Boot — @SpringBootTest uruchamia kontekst Spring; JUnit 5 z Mockito mockuje zależności
  • TDD (Test-Driven Development) — JUnit jako narzędzie do cyklu red-green-refactor w projektach Java
  • CI/CD pipeline — Maven Surefire i Gradle uruchamiają testy JUnit automatycznie przy każdym buildzie
  • Testowania REST API z MockMvc — testy kontrolerów Spring MVC bez uruchamiania serwera HTTP

Ścieżka nauki #

JUnit jest pierwszym frameworkiem testowym, którego powinna nauczyć się każda osoba pisząca w Javie.

Zacznij od:

  • Dodanie zależności do projektu: org.junit.jupiter:junit-jupiter (Maven/Gradle)
  • Tworzenie pierwszego testu: klasa testowa, metoda z @Test, asercje (assertEquals, assertTrue)
  • Cykl życia testu: @BeforeEach do inicjalizacji, @AfterEach do sprzątania
  • Uruchamianie testów: z IDE (IntelliJ, Eclipse) i wiersza poleceń (mvn test, gradle test)

Następnie poznaj:

  • Mockito — mockowanie zależności (@Mock, when().thenReturn(), verify()) z integracją JUnit 5 (@ExtendWith(MockitoExtension.class))
  • Testy parametryczne: @ParameterizedTest z @CsvSource i @MethodSource
  • Asercja AssertJ — bardziej ekspresywne asercje niż wbudowane w JUnit
  • Testy integracyjne Spring Boot: @SpringBootTest, @DataJpaTest, MockMvc
  • Wzorzec AAA: Arrange-Act-Assert jako konwencja struktury testów

FAQ #

Czym różni się JUnit 4 od JUnit 5?
JUnit 5 (Jupiter) to gruntowne przepisanie JUnit 4. Kluczowe różnice: nowa architektura (Platform/Jupiter/Vintage), Extension API zamiast @Rule i @ClassRule, @BeforeEach zamiast @Before, wsparcie dla testów parametrycznych (@ParameterizedTest), zagnieżdżone klasy (@Nested) i lepsze komunikaty asercji. Nowe projekty powinny używać JUnit 5.
Czym JUnit różni się od Mockito?
JUnit to framework do strukturyzowania i uruchamiania testów (adnotacje, asercje, cykl życia). Mockito to biblioteka do tworzenia obiektów-atrap (mock) zależności. Te dwa narzędzia są komplementarne i używane razem: JUnit zarządza testem, Mockito dostarcza mocki zamiast prawdziwych serwisów czy repozytoriów.
Czy JUnit działa tylko z Javą?
JUnit działa na JVM — obsługuje Javę, Kotlina i Groovy. Dla Kotlina popularną alternatywą jest Kotest (dawniej KotlinTest) z bardziej idiomatycznym API. JUnit jest jednak standardem i działa dobrze z Kotlinem przez @ExtendWith i standardowe adnotacje.
Ile zarabia Java Developer znający JUnit?
JUnit to podstawowa umiejętność każdego Java Developera — wymagana w praktycznie każdej ofercie pracy. Mid Java Developer zarabia od 12 000 do 20 000 zł brutto, senior od 20 000 do 35 000 zł. Znajomość TDD i testowania integracyjnego (Spring Boot Test) wyróżnia kandydatów.
Ostatnia aktualizacja:

Powiązane hasła

Technologie i biblioteki, które najczęściej pojawiają się razem z JUnit w ogłoszeniach.

Cały słownik IT

Przeglądaj słownik IT alfabetycznie

Wybierz literę, aby zobaczyć wszystkie hasła zaczynające się od niej.