Учебники

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

Традиционный способ обозначить методы тестирования в JUnit 3 заключается в добавлении к их именам префикса test. Это очень эффективный метод для обозначения определенных методов в классе как имеющих особое значение, но именование не очень хорошо масштабируется (что, если мы хотим добавить больше тегов для разных структур?) И является довольно негибким (что, если мы хотите передать дополнительные параметры в среду тестирования?).

Аннотации были формально добавлены к языку Java в JDK 5, и TestNG сделал выбор использовать аннотации для аннотирования тестовых классов.

Вот список аннотаций, которые поддерживает TestNG —

Sr.No. Аннотация и описание
1

@BeforeSuite

Аннотированный метод будет запущен только один раз до запуска всех тестов в этом наборе.

2

@AfterSuite

Аннотированный метод будет запущен только один раз после выполнения всех тестов в этом наборе.

3

@BeforeClass

Аннотированный метод будет запущен только один раз, прежде чем будет вызван первый тестовый метод в текущем классе.

4

@После школы

Аннотированный метод будет запущен только один раз после запуска всех тестовых методов в текущем классе.

5

@BeforeTest

Аннотированный метод будет запущен до запуска любого тестового метода, принадлежащего классам внутри тега <test>.

6

@AfterTest

Аннотированный метод будет запущен после запуска всех тестовых методов, принадлежащих классам внутри тега <test>.

7

@BeforeGroups

Список групп, которые этот метод конфигурации будет запускать раньше. Этот метод гарантированно будет запущен незадолго до того, как будет вызван первый метод тестирования, принадлежащий любой из этих групп.

8

@AfterGroups

Список групп, после которых будет запускаться этот метод конфигурации. Этот метод гарантированно будет запущен вскоре после вызова последнего метода тестирования, принадлежащего любой из этих групп.

9

@BeforeMethod

Аннотированный метод будет запускаться перед каждым тестовым методом.

10

@AfterMethod

Аннотированный метод будет запускаться после каждого метода тестирования.

11

@DataProvider

Отмечает метод как предоставление данных для метода тестирования. Аннотированный метод должен возвращать объект [] [], где каждому объекту [] можно назначить список параметров метода тестирования. Метод @Test, который хочет получать данные от этого DataProvider, должен использовать имя dataProvider, равное имени этой аннотации.

12

@Factory

Помечает метод как фабрику, которая возвращает объекты, которые будут использоваться TestNG в качестве тестовых классов. Метод должен возвращать Object [].

13

@Listeners

Определяет слушателей на тестовом классе.

14

@Parameters

Описывает, как передавать параметры в метод @Test.

15

@Тестовое задание

Помечает класс или метод как часть теста.

@BeforeSuite

Аннотированный метод будет запущен только один раз до запуска всех тестов в этом наборе.

@AfterSuite

Аннотированный метод будет запущен только один раз после выполнения всех тестов в этом наборе.

@BeforeClass

Аннотированный метод будет запущен только один раз, прежде чем будет вызван первый тестовый метод в текущем классе.

@После школы

Аннотированный метод будет запущен только один раз после запуска всех тестовых методов в текущем классе.

@BeforeTest

Аннотированный метод будет запущен до запуска любого тестового метода, принадлежащего классам внутри тега <test>.

@AfterTest

Аннотированный метод будет запущен после запуска всех тестовых методов, принадлежащих классам внутри тега <test>.

@BeforeGroups

Список групп, которые этот метод конфигурации будет запускать раньше. Этот метод гарантированно будет запущен незадолго до того, как будет вызван первый метод тестирования, принадлежащий любой из этих групп.

@AfterGroups

Список групп, после которых будет запускаться этот метод конфигурации. Этот метод гарантированно будет запущен вскоре после вызова последнего метода тестирования, принадлежащего любой из этих групп.

@BeforeMethod

Аннотированный метод будет запускаться перед каждым тестовым методом.

@AfterMethod

Аннотированный метод будет запускаться после каждого метода тестирования.

@DataProvider

Отмечает метод как предоставление данных для метода тестирования. Аннотированный метод должен возвращать объект [] [], где каждому объекту [] можно назначить список параметров метода тестирования. Метод @Test, который хочет получать данные от этого DataProvider, должен использовать имя dataProvider, равное имени этой аннотации.

@Factory

Помечает метод как фабрику, которая возвращает объекты, которые будут использоваться TestNG в качестве тестовых классов. Метод должен возвращать Object [].

@Listeners

Определяет слушателей на тестовом классе.

@Parameters

Описывает, как передавать параметры в метод @Test.

@Тестовое задание

Помечает класс или метод как часть теста.

Преимущества использования аннотаций

Ниже приведены некоторые преимущества использования аннотаций.

TestNG определяет интересующие его методы, просматривая аннотации. Следовательно, имена методов не ограничены каким-либо шаблоном или форматом.

Мы можем передать дополнительные параметры в аннотации.

Аннотации строго напечатаны, поэтому компилятор сразу же отметит любые ошибки.

Тестовым классам больше не нужно ничего расширять (например, TestCase, для JUnit 3).