Sobes.tech
Junior — Middle

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

sobes.tech AI

Отговор от 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 все още е широко използван и поддържан.