Annotations are nothing but a piece of instruction for the compiler that you apply to classes, methods or variables in your Java code. It is a powerful feature and an integral part of the TestNG framework.
There are multiple TestNG annotations which you can use for different tasks. It is essential to know each of the annotation so that you could apply them correctly while working on a TestNG Selenium WebDriver project.
Let’s see what the TestNG annotations for Selenium WebDriver are and what is their objective? The TestNG annotations extend the same concept and control the execution sequence of the test code and test methods.
I’ve drilled down the list of primary TestNG annotations along with a little detail about each of them.
|@Test||Attaches a class or a method to become the part of the test.|
|@BeforeTest||Instructs the method to run before any test method related to the classes which are inside the <test> tag as per the <testng.xml> file|
|@AfterTest||Halts a method from execution till all the test methods finish their execution. These methods belong to the classes defined in the <test> tag of <testng.xml> file.|
|@BeforeMethod||Allows a method to run before executing any of the @test annotated methods.|
|@AfterMethod||Allows a method to take off after all of the @test annotated methods finish their execution.|
|@Parameters||You can use this annotation for passing the parameters to the test methods.|
|@DataProvider||It marks a method as a data source for the test. Every @DataProvider annotated method must always return the value as <Object[ ][ ]>. You can use it in any of the @Test annotated methods.|
|@BeforeClass||The method annotated with @BeforeClass gets executed once before the first test method of the current class.|
|@AfterClass||The method annotated with @AfterClass gets run once after finishing all the test methods in the current class.|
|@BeforeGroups||It sets up the method to run before the first test method belonging to any of the groups involved in the execution.|
|@AfterGroups||It sets up the method to run after the execution of all the test methods belonging to any of the groups participating in the test.|
|@BeforeSuite||Any such method will get called before any of the suites runs from the test.|
|@AfterSuite||Any such method will stay its execution until all other methods in the current test suite get executed.|
|@Factory||You use it to execute any specific group of test cases with varied values. It returns an array of test class objects as the <Object[ ]>.|
|@Listeners||You can use them with the test classes for the logging function.|
ADVANTAGE OF USING TESTNG ANNOTATIONS.
There are many benefits of using the annotations in the project.
- They are easier to understand.
- You can group the test cases using the appropriate annotation.
- You can do parallel testing.
- You can pass extra parameters to annotations.
- They are strongly typed, so the compiler will catch any error outright.