Тестирование Spring (WebTestClient/JUnit)
Пишите лёгкие тесты для контроллеров с помощью WebTestClient и изучайте основы JUnit.
«Тестирование Spring (WebTestClient/JUnit)» — бесплатный урок Java Academy на CoddyKit. Это урок 1 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Java Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Java Academy содержит 3 уроков всего.
Введение
Цель: понять основы JUnit и то, как WebTestClient обращается к вашим контроллерам с HTTP-вызовами в тестах.
Основы JUnit
JUnit предоставляет проверки и методы для тестов. В Spring Boot тесты запускаются с помощью SpringExtension или @SpringBootTest.
Код: идея проверки
Тесты сравнивают ожидаемое и фактическое значения и сообщают понятный результат; JUnit автоматизирует эту идею.
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");
}
}
Обзор WebTestClient
WebTestClient отправляет HTTP-запросы вашему контроллеру в тестах и проверяет статус, заголовки и тело ответа.
Код: последовательность «запрос → проверка»
В настоящих тестах вместо этой имитации используется WebTestClient, но последовательность похожа: запрос → обработчик → проверка.
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");
}
}
}
Код: проверка пути ошибки
В WebTestClient можно проверять коды статуса и необязательные данные ошибки.
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);
}
}
}
Проверка WebTestClient
Быстрая проверка: для чего обычно используется WebTestClient?
Итоги
Итоги: JUnit = проверки и методы для тестов. WebTestClient = тестирование контроллеров по HTTP. Понятно проверяйте статус и тело ответа.
Часто задаваемые вопросы
Урок «Тестирование Spring (WebTestClient/JUnit)» бесплатный?
Да — полный текст урока «Тестирование Spring (WebTestClient/JUnit)» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Java Academy, подпишись на CoddyKit PRO. Курс Java Academy содержит 3 уроков всего.
Чему я научусь в уроке «Тестирование Spring (WebTestClient/JUnit)»?
Пишите лёгкие тесты для контроллеров с помощью WebTestClient и изучайте основы JUnit. Ты практикуешь Java Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Java Academy?
Предыдущий опыт не требуется. Java Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 3.
Сколько времени занимает урок «Тестирование Spring (WebTestClient/JUnit)»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Java Academy?
Да. Каждый урок Java Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Тестирование Spring (WebTestClient/JUnit)
- Конфигурация и профили
- Упаковка и запуск