Традиционный способ обозначить методы тестирования в 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).