Testowanie Spring (WebTestClient/JUnit)
Napiszą Państwo lekkie testy kontrolerów, korzystając z WebTestClient i podstaw JUnit.
Testowanie Spring (WebTestClient/JUnit) to bezpłatna lekcja Java Academy na CoddyKit. To lekcja 1 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Java Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Java Academy zawiera 3 lekcji w sumie.
Wprowadzenie
Cel: zrozumieć podstawy JUnit oraz sposób, w jaki WebTestClient wywołuje kontrolery za pomocą żądań HTTP w testach.
Podstawy JUnit
JUnit udostępnia asercje i metody testowe. W Spring Boot testy uruchamia się za pomocą SpringExtension lub @SpringBootTest.
Kod: idea asercji
Testy porównują wartość oczekiwaną z rzeczywistą i przedstawiają jasny wynik; JUnit automatyzuje tę ideę.
public class Main {
// Simple, runnable demo of assertion-like checks (not JUnit), prints PASS/FAIL.
static void assertEquals(int expected, int actual, String name) {
if (expected == actual) {
System.out.println(name + ": PASS");
} else {
System.out.println(name + ": FAIL expected " + expected + " but was " + actual);
}
}
public static void main(String[] args) {
// Pretend we test a controller method that adds numbers.
int sum = 2 + 3; // pretend controller result
assertEquals(5, sum, "addsTwoNumbers");
}
}
Omówienie WebTestClient
WebTestClient wysyła w testach żądania HTTP do kontrolera i sprawdza status, nagłówki oraz treść odpowiedzi.
Kod: przepływ od żądania do weryfikacji
W rzeczywistych testach zamiast tej imitacji używa się WebTestClient, ale przepływ jest podobny: żądanie → obsługa → weryfikacja.
public class Main {
// Simulate an HTTP test: build request, call handler, verify response.
static String handleHello(String path) {
// pretend controller:
if ("/hello".equals(path)) return "Hello";
return "404";
}
public static void main(String[] args) {
String response = handleHello("/hello");
if ("Hello".equals(response)) {
System.out.println("GET /hello -> 200 OK, body=Hello (PASS)");
} else {
System.out.println("GET /hello -> FAIL");
}
}
}
Kod: weryfikacja ścieżki błędu
W WebTestClient można asertywnie sprawdzać kody statusu oraz opcjonalną treść błędu.
public class Main {
// Simulate verifying error responses.
static int deleteUser(long id) {
// pretend service: only id 1 exists
if (id == 1L) return 204; // No Content
return 404; // Not Found
}
public static void main(String[] args) {
int status = deleteUser(99L); // should be 404 in our scenario
if (status == 404) {
System.out.println("DELETE /users/99 -> 404 (PASS)");
} else {
System.out.println("DELETE /users/99 -> FAIL got " + status);
}
}
}
Sprawdzenie WebTestClient
Szybkie sprawdzenie: Do czego najczęściej używa się WebTestClient?
Podsumowanie
Podsumowanie: JUnit = asercje i metody testowe. WebTestClient = testowanie kontrolerów za pomocą HTTP. Należy jasno weryfikować status i treść odpowiedzi.
Często zadawane pytania
Czy lekcja „Testowanie Spring (WebTestClient/JUnit)” jest bezpłatna?
Tak — pełny tekst „Testowanie Spring (WebTestClient/JUnit)” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Java Academy, przejdź na CoddyKit PRO. Kurs Java Academy zawiera 3 lekcji w sumie.
Co nauczysz się w „Testowanie Spring (WebTestClient/JUnit)”?
Napiszą Państwo lekkie testy kontrolerów, korzystając z WebTestClient i podstaw JUnit. Ćwiczysz Java Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Java Academy?
Nie wymagamy żadnego doświadczenia. Java Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 3.
Ile czasu zajmuje lekcja „Testowanie Spring (WebTestClient/JUnit)”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Java Academy?
Tak. Każda lekcja Java Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Testowanie Spring (WebTestClient/JUnit)
- Konfiguracja i profile
- Pakowanie i uruchamianie