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

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

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

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

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

@BeforeSuite

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

2

@AfterSuite

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

3

@BeforeClass

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

4

@AfterClass

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

5

@BeforeTest

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

6

@AfterTest

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

7

@BeforeGroups

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

8

@AfterGroups

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

9

@BeforeMethod

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

10

@AfterMethod

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

11

@DataProvider

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

12

@Factory

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

13

@Listeners

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

14

@Parameters

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

15

@Test

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

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

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

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

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

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

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