---
title: JUnit
seo:
  title: JUnit — Java Developer
  description: Тема «JUnit» для собеседования Java Developer. Что такое «фикстуры»? Какие аннотации фикстур существуют в JUnit?
---

[Все темы Java Developer](/java-developer)

## <strong>Что такое «фикстуры»?</strong> [#q-14bee738d69b81409759c1830fc2c733]

Фикстуры в тестировании — это заранее подготовленные условия или наборы данных, используемые для обеспечения стабильного и воспроизводимого окружения при выполнении тестов.

#### Основные моменты&#58;

- <strong>Цель&#58;</strong> Обеспечить консистентное начальное состояние для
  тестов.

- <strong>Использование&#58;</strong> Подготовка данных, настройка окружения,
  создание необходимых объектов.

- <strong>Подходы&#58;</strong> Создание фикстур перед каждым тестом (
  <code>setup</code>) и очистка после каждого теста (<code>teardown</code>).

#### Пример&#58;

```java
import org.junit.Before;
import org.junit.After;
import org.junit.Test;

public class ExampleTest {

    @Before
    public void setup() {
        // Код для подготовки фикстур
        System.out.println("Setup: Preparing test environment.");
    }

    @Test
    public void testSomething() {
        // Тестовый код
        System.out.println("Running test.");
    }

    @After
    public void teardown() {
        // Код для очистки после теста
        System.out.println("Teardown: Cleaning up test environment.");
    }
}
```

Фикстуры помогают обеспечить предсказуемые результаты тестирования и упрощают процесс написания тестов.

:::note[Ссылки для изучения]

1. [Туториал по JUnit 5](https://habr.com/ru/articles/590607/)
   :::

---

## <strong>Какие аннотации фикстур существуют в</strong> <code>JUnit</code><strong>?</strong> [#q-14bee738d69b81c88e09e49096953a75]

<strong>Аннотации фикстур в</strong> <code>JUnit</code>
<strong>&#58;</strong>

{/* prettier-ignore */}
1. <code>&#64;BeforeEach</code> <strong>(JUnit 5) /</strong> <code>&#64;Before</code> <strong>(JUnit 4)&#58;</strong>

    - Выполняется перед каждым тестом.

    - Используется для настройки начального состояния.

    ```java
    @BeforeEach
    public void setup() {
        // Код для подготовки фикстур перед каждым тестом
    }
    ```

1. <code>&#64;AfterEach</code> <strong>(JUnit 5) /</strong> <code>&#64;After</code> <strong>(JUnit 4)&#58;</strong>

    - Выполняется после каждого теста.

    - Используется для очистки после теста.

    ```java
    @AfterEach
    public void teardown() {
        // Код для очистки после каждого теста
    }
    ```

1. <code>&#64;BeforeAll</code> <strong>(JUnit 5) /</strong> <code>&#64;BeforeClass</code> <strong>(JUnit 4)&#58;</strong>

    - Выполняется один раз перед всеми тестами.

    - Используется для настройки общего начального состояния.

    ```java
    @BeforeAll
    public static void init() {
        // Код для подготовки фикстур перед всеми тестами
    }
    ```

1. <code>&#64;AfterAll</code> <strong>(JUnit 5) /</strong> <code>&#64;AfterClass</code> <strong>(JUnit 4)&#58;</strong>

    - Выполняется один раз после всех тестов.

    - Используется для очистки общего состояния.

    ```java
    @AfterAll
    public static void cleanup() {
        // Код для очистки после всех тестов
    }
    ```

Эти аннотации помогают управлять подготовкой и очисткой тестового окружения в JUnit.

:::note[Ссылки для изучения]

1. [Туториал по JUnit 5](https://habr.com/ru/articles/590607/)
   :::
