Рубрики
Без рубрики

JUnit 5 Повторные тесты

– Повторные тесты JUnit 5

В этой статье показано, как использовать JUnit 5 @repeatedtest для повторения теста указанное количество раз.

P.S Протестировано с JUnit 5.5.2

1. @Повторный тест

1.1 Метод тестирования @repeatedtest аналогичен обычному методу @Test , с тем же жизненным циклом.

package com.mkyong.repeated;

import org.junit.jupiter.api.*;

import static org.junit.jupiter.api.Assertions.assertEquals;

public class RepeatedSample1Test {

    @BeforeAll
    static void beforeAll() {
        System.out.println("beforeAll");
    }

    @AfterAll
    static void afterAll() {
        System.out.println("afterAll");
    }

    @BeforeEach
    void beforeEach() {
        System.out.println("beforeEach");
    }

    @AfterEach
    void afterEach() {
        System.out.println("afterEach");
    }

    // Repeat this test 3 times
    @RepeatedTest(3)
    void math_add_1() {
        System.out.println("Run math_add_1()");
        assertEquals(2, 1 + 1);
    }

    @RepeatedTest(3)
    void math_add_2() {
        System.out.println("Run math_add_2()");
        assertEquals(2, 1 + 1);
    }

}

Вывод в среде IDE.

Вывод в консоль.

beforeAll

beforeEach
Run math_add_1()
afterEach

beforeEach
Run math_add_1()
afterEach

beforeEach
Run math_add_1()
afterEach

beforeEach
Run math_add_2()
afterEach

beforeEach
Run math_add_2()
afterEach

beforeEach
Run math_add_2()
afterEach

afterAll

2. Пользовательское имя теста

2.1 Мы можем настроить имя метода @repeatedtest .

package com.mkyong.repeated;

import org.junit.jupiter.api.RepeatedTest;

import static org.junit.jupiter.api.Assertions.assertEquals;

public class RepeatedSample2Test {

    @RepeatedTest(3)
    void math_add_1() {
        System.out.println("Run math_add_1()");
        assertEquals(2, 1 + 1);
    }

    @RepeatedTest(value = 3, name = RepeatedTest.LONG_DISPLAY_NAME)
    void math_add_2() {
        System.out.println("Run math_add_2()");
        assertEquals(2, 1 + 1);
    }

    @RepeatedTest(value = 3, name = "{displayName} - ABC - {currentRepetition}/{totalRepetitions}")
    void math_add_3() {
        System.out.println("Run math_add_3()");
        assertEquals(2, 1 + 1);
    }

}

Вывод в среде IDE.

Примечание

  • {Имя дисплея} : Название метода тестирования.
  • {{текущее повторение} : Текущее количество повторений.
  • {{общее количество повторений} : Общее количество повторений.

3. Повторение В

3.1 Мы также можем ввести Информацию о повторении в качестве параметра и получить доступ к метаданным @repeatedtest .

package com.mkyong.repeated;

import org.junit.jupiter.api.RepeatedTest;
import org.junit.jupiter.api.RepetitionInfo;

import static org.junit.jupiter.api.Assertions.assertEquals;

public class RepeatedSample3Test {

    @RepeatedTest(3)
    void math_add_4(RepetitionInfo repetitionInfo) {
        System.out.println("Repetition #" + repetitionInfo.getCurrentRepetition());
        assertEquals(3, repetitionInfo.getTotalRepetitions());
    }

}

Вывод в консоль.

Repetition #1

Repetition #2

Repetition #3

Скачать Исходный Код

Оригинал: “https://mkyong.com/junit5/junit-5-repeated-tests/”