Для чего используется аннотация @Test в JUnit?

«Для чего используется аннотация @Test в JUnit?» — вопрос из категории Тестирование, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Аннотация @Test в JUnit маркирует метод как исполняемый тестовый случай. Фреймворк JUnit выполняет все методы, помеченные этой аннотацией, при запуске тестового класса.

Пример теста в JUnit 4:

import org.junit.Test;
import static org.junit.Assert.*;

public class CalculatorTest {
    @Test
    public void addition_ShouldReturnCorrectSum() {
        int result = 2 + 2;
        assertEquals(4, result);
    }
}

Ключевые особенности:

  • JUnit 4: Тестовый метод должен быть public void (без параметров).
  • JUnit 5 (Jupiter): Аннотация импортируется из org.junit.jupiter.api.Test. Метод может иметь любой модификатор доступа и даже возвращать значение (например, для использования с assertThrows).
  • Поведение: Если выполнение метода завершается без исключений, тест считается пройденным. Непроверяемое исключение приводит к падению теста.
  • Дополнительные возможности: Аннотацию можно комбинировать с другими, например, @DisplayName("Проверка сложения") в JUnit 5 для улучшения читаемости отчета.