Sobes.tech
Назад к вопросам
Junior — Middle
58

Какие отличия существуют между версиями JUnit 4 и JUnit 5 в контексте тестирования?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

Основные отличия между JUnit 4 и JUnit 5:

  • Архитектура: JUnit 5 состоит из нескольких модулей (JUnit Platform, JUnit Jupiter, JUnit Vintage), что позволяет запускать тесты разных версий и расширять функциональность. JUnit 4 — монолитный.

  • Аннотации:

    • В JUnit 5 появились новые аннотации: @BeforeEach вместо @Before, @AfterEach вместо @After, @BeforeAll вместо @BeforeClass, @AfterAll вместо @AfterClass.
    • @Test в JUnit 5 поддерживает новые возможности, например, указание ожидаемых исключений через assertThrows вместо параметра аннотации.
  • Расширяемость: JUnit 5 предоставляет расширяемую модель расширений (Extension API), заменяющую правила и раннеры из JUnit 4.

  • Поддержка лямбда-выражений и Java 8+: JUnit 5 использует возможности Java 8, что упрощает написание тестов и улучшает читаемость.

  • Параметризованные тесты: В JUnit 5 улучшена поддержка параметризованных тестов с более гибкими источниками данных.

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

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

class CalculatorTest {
    @Test
    void addition() {
        assertEquals(2, 1 + 1);
    }
}

JUnit 5 более современный и гибкий, рекомендуется для новых проектов, но JUnit 4 все еще широко используется и поддерживается.