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).