Ответ 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
приведет к значению поля
или значение, возвращаемое методом, которое будет использоваться в качестве потенциального параметра для
теории в этом классе
Расширение @DataPoint
Аннотирование массива или заданного пользователем поля или метода с помощью @DataPoints
приведет к тому, что значения в массиве или итерабельности будут использованы как потенциальные
параметры для теорий в этом классе
Аннотирование параметра метода @Theory
с @FromDataPoints
ограничит
datapoints рассматриваются как потенциальные значения для этого параметра только для
@DataPoints
с заданным именем
@ParametersSuppliedBy
Аннотирование параметра метода @Theory
с помощью @ParametersSuppliedBy
заставляет его поставляться с
значения из названного ParameterSupplier
при запуске как теории
Аннотация @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));
}