Какие фреймворки и инструменты используются для написания тест-кейсов?

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

Ответ

Выбор инструмента зависит от типа и уровня тестирования.

Юнит-тестирование (Unit Testing):

  • JUnit 5/Jupiter: Современный стандарт для Java. Поддерживает параметризованные тесты, расширения.
    @Test
    @DisplayName("Сложение двух положительных чисел")
    void additionOfPositiveNumbers() {
        Calculator calc = new Calculator();
        assertEquals(5, calc.add(2, 3), "2 + 3 должно быть равно 5");
    }
  • TestNG: Альтернатива с мощными возможностями для параметризации и группировки тестов.

Мокирование зависимостей:

  • Mockito: Стандарт для создания mock- и stub-объектов.

Интеграционное и E2E-тестирование:

  • Spring Boot Test (@SpringBootTest): Для поднятия контекста Spring.
  • Selenium/Playwright: Для автоматизации UI-тестов в браузере.
  • REST Assured: Для удобного тестирования REST API.
    given()
        .param("name", "John")
    .when()
        .get("/greet")
    .then()
        .statusCode(200)
        .body("message", equalTo("Hello, John!"));
  • Cucumber: Для Behavior-Driven Development (BDD). Тесты пишутся на языке Gherkin в .feature файлах, а шаги реализуются на Java.