Почему для модульного тестирования в Java часто выбирают JUnit?

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

Ответ

JUnit — это стандартный де-факто фреймворк для модульного тестирования в Java-экосистеме. Его выбирают по нескольким ключевым причинам:

  • Стандартизация и интеграция: Широкая поддержка в IDE (IntelliJ IDEA, Eclipse), системах сборки (Maven, Gradle) и CI/CD-пайплайнах (Jenkins, GitLab CI).
  • Простота и читаемость: Использование аннотаций (@Test, @BeforeEach, @AfterAll) делает структуру тестов понятной.
  • Богатый функционал: Поддержка параметризованных тестов (@ParameterizedTest), assertions, assumptions и расширяемость через правила (Rules) и расширения (Extensions).

Пример простого теста:

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

public class CalculatorTest {
    @Test
    public void testAddition() {
        Calculator calc = new Calculator();
        int result = calc.add(2, 2);
        assertEquals(4, result, "2 + 2 должно равняться 4");
    }
}