If you annotate a method with @BeforeMethod annotation, then that method gets executed before every test case gets executed.
@BeforeMethod
public void beforeMethod_1() {
System.out.println("\nInside beforeMethod_1");
}
package com.sample.app.arithmetic;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class BeforeMethodTest {
@BeforeClass
public void beforeClass_1() {
System.out.println("Inside before class 1");
}
@BeforeClass
public void beforeClass_2() {
System.out.println("Inside before class 2");
}
@BeforeMethod
public void beforeMethod_1() {
System.out.println("\nInside beforeMethod_1");
}
@Test
public void testCase1() {
System.out.println("testCase1 executing");
}
@Test
public void testCase2() {
System.out.println("testCase2 executing");
}
@AfterClass
public void afterClass_1() {
System.out.println("\nInside after class 1");
}
@AfterClass
public void afterClass_2() {
System.out.println("Inside after class 2");
}
}
Run BeforeMethodTest.java, you can see below messages in console.
Inside before class 1 Inside before class 2 Inside beforeMethod_1 testCase1 executing Inside beforeMethod_1 testCase2 executing Inside after class 1 Inside after class 2
Can I define more than one method with @BeforeMethod annotation?
Yes
BeforeMethodTest.java
package com.sample.app.arithmetic;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class BeforeMethodTest {
@BeforeClass
public void beforeClass_1() {
System.out.println("Inside before class 1");
}
@BeforeClass
public void beforeClass_2() {
System.out.println("Inside before class 2");
}
@BeforeMethod
public void beforeMethod_1() {
System.out.println("\nInside beforeMethod_1");
}
@BeforeMethod
public void beforeMethod_2() {
System.out.println("Inside beforeMethod_2");
}
@Test
public void testCase1() {
System.out.println("testCase1 executing");
}
@Test
public void testCase2() {
System.out.println("testCase2 executing");
}
@AfterClass
public void afterClass_1() {
System.out.println("\nInside after class 1");
}
@AfterClass
public void afterClass_2() {
System.out.println("Inside after class 2");
}
}
When you ran BeforeMethodTest class, you will see below messages in console.
Inside before class 1 Inside before class 2 Inside beforeMethod_1 Inside beforeMethod_2 testCase1 executing Inside beforeMethod_1 Inside beforeMethod_2 testCase2 executing Inside after class 1 Inside after class 2
No comments:
Post a Comment