Подтвердить что ты не робот

Список аннотаций в JUnit

Недавно я изучил и реализовал структуру JUnit. В результате я знаю несколько аннотаций, которые используются в JUnit: - @Test, @Before, @After, @Ignore, @BeforeClass, @AfterClass, @Runwith(Suite.class), @SuiteClasses({}), @Parameters, @RunWith(Parameterized.class) и @Rule.

Я уверен, что есть больше аннотаций, которые используются в JUnit. Может ли кто-нибудь направить меня со списком более аннотаций, которые могут быть использованы и при каких обстоятельствах они используются?

Спасибо.

4b9b3361

Ответ 1

Этот поиск Github (@interface) дает вам список всех аннотаций:

https://github.com/junit-team/junit/search?q=%22%40interface%22&type=Code

Основные аннотации

@Test @Before @After @AfterClass @BeforeClass @Ignore @Runwith

Параметрированные тесты

Для параметризованных тестов используйте @Parameters и @RunWith(Parameterized.class)
https://github.com/junit-team/junit/wiki/Parameterized-tests

Категория

@Category
Группировка тестов по категориям. например Быстрый, медленный и т.д.

https://github.com/junit-team/junit/wiki/Categories

@IncludeCategory
Выполняет только классы и методы, которые аннотируется либо категорией, заданной с помощью @IncludeCategory аннотации или подтипа этой категории.

@ExcludeCategory
Обратный @IncludeCategory

Правила

@Rule
Правила допускают очень гибкое добавление или переопределение поведения каждого метода тестирования в тестовом классе. например Создание правила Temp Folder для создания временной папки при выполнении тестов.

https://github.com/junit-team/junit/wiki/Rules

Теория и связанные аннотации

@Theory
Теории дают более гибкие и выразительные утверждения

https://github.com/junit-team/junit/wiki/Theories

@DataPoint
Аннотирование поля или метода с помощью @DataPoint приведет к значению поля или значение, возвращаемое методом, которое будет использоваться в качестве потенциального параметра для теории в этом классе

@DataPoints

Расширение @DataPoint
Аннотирование массива или заданного пользователем поля или метода с помощью @DataPoints приведет к тому, что значения в массиве или итерабельности будут использованы как потенциальные параметры для теорий в этом классе

@FromDataPoints

Аннотирование параметра метода @Theory с @FromDataPoints ограничит datapoints рассматриваются как потенциальные значения для этого параметра только для @DataPoints с заданным именем

@ParametersSuppliedBy
Аннотирование параметра метода @Theory с помощью @ParametersSuppliedBy заставляет его поставляться с значения из названного ParameterSupplier при запуске как теории

@TestedOn

Аннотация @TestedOn принимает массив значений, которые будут использоваться в качестве точек данных для аннотированных Параметр.

например.

@Theory
public void multiplyIsInverseOfDivideWithInlineDataPoints(
        @TestedOn(ints = {0, 5, 10}) int amount,
        @TestedOn(ints = {0, 1, 2}) int m
) {
    assumeThat(m, not(0));
    assertThat(new Dollar(amount).times(m).divideBy(m).getAmount(), is(amount));
}