# Какие аннотации используются в TestNG/JUnit?

#### TestNG Аннотации:

1.  **`@Test`:**

    * Обозначает, что метод является тестовым методом.

    ```java
    @Test
    public void testMethod() {
        // Тело тестового метода
    }
    ```
2.  **`@BeforeMethod`:**

    * Обозначает метод, который будет выполняться перед каждым тестовым методом.

    ```java
    @BeforeMethod
    public void setUp() {
        // Настройка перед каждым тестом
    }
    ```
3.  **`@AfterMethod`:**

    * Обозначает метод, который будет выполняться после каждого тестового метода.

    ```java
    @AfterMethod
    public void tearDown() {
        // Очистка после каждого теста
    }
    ```
4.  **`@BeforeClass`:**

    * Обозначает метод, который будет выполняться перед всеми тестовыми методами в классе.

    ```java
    @BeforeClass
    public void setUpClass() {
        // Настройка перед всеми тестами в классе
    }
    ```
5.  **`@AfterClass`:**

    * Обозначает метод, который будет выполняться после всех тестовых методов в классе.

    ```java
    @AfterClass
    public void tearDownClass() {
        // Очистка после всех тестов в классе
    }
    ```
6.  **`@BeforeSuite`:**

    * Обозначает метод, который будет выполняться перед всеми тестами в тестовом наборе.

    ```java
    @BeforeSuite
    public void setUpSuite() {
        // Настройка перед всеми тестами в тестовом наборе
    }
    ```
7.  **`@AfterSuite`:**

    * Обозначает метод, который будет выполняться после всех тестов в тестовом наборе.

    ```java
    @AfterSuite
    public void tearDownSuite() {
        // Очистка после всех тестов в тестовом наборе
    }
    ```

#### JUnit Аннотации:

1.  **`@Test`:**

    * Обозначает, что метод является тестовым методом.

    ```java
    @Test
    public void testMethod() {
        // Тело тестового метода
    }
    ```
2.  **`@Before`:**

    * Обозначает метод, который будет выполняться перед каждым тестовым методом.

    ```java
    @Before
    public void setUp() {
        // Настройка перед каждым тестом
    }
    ```
3.  **`@After`:**

    * Обозначает метод, который будет выполняться после каждого тестового метода.

    ```java
    @After
    public void tearDown() {
        // Очистка после каждого теста
    }
    ```
4.  **`@BeforeClass`:**

    * Обозначает метод, который будет выполняться перед всеми тестовыми методами в классе.

    ```java
    @BeforeClass
    public static void setUpClass() {
        // Настройка перед всеми тестами в классе
    }
    ```
5.  **`@AfterClass`:**

    * Обозначает метод, который будет выполняться после всех тестовых методов в классе.

    ```java
    @AfterClass
    public static void tearDownClass() {
        // Очистка после всех тестов в классе
    }
    ```
6.  **`@BeforeAll` (JUnit 5):**

    * Обозначает метод, который будет выполняться перед всеми тестовыми методами в классе (JUnit 5).

    ```java
    @BeforeAll
    public static void setUpAll() {
        // Настройка перед всеми тестами в классе (JUnit 5)
    }
    ```
7.  **`@AfterAll` (JUnit 5):**

    * Обозначает метод, который будет выполняться после всех тестовых методов в классе (JUnit 5).

    ```java
    @AfterAll
    public static void tearDownAll() {
        // Очистка после всех тестов в классе (JUnit 5)
    }
    ```

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