So How to Use JUnit Annotations in webdriver test case with example?
Unit testing framework JUnit has many annotations to control the flow
and activity of code execution. You must need to insert JUnit annotation
inside the java code to execute your test case as junit test case. You can view more details on JUnit at http://junit.org/.
1. @Before
2. @Test
3. @After
2 other frequently used annotations are @BeforeClass and @AfterClass.
Depending on annotation names, JUnit framework will decide the code
execution flow. i.e. First JUnit framework will execute @Before method,
Second it will execute @Test method and at last it will execute @After
method.
1. @Before Annotation
As name suggest. method written under @Before annotation will be
executed before the method written under @Test annotation. Based on
@Before annotation, JUnit framework will execute that before method
first. Generally method under @Before annotation is used to initializing
website and other environment related setup. @Before annotation
method will be executed before each @Test annotation method means if
there are two @Test methods in your class then @Before method will be
executed two times.
2. @After
Method under @After annotation is known as after method and execution
of @After method will start as soon as completion of @Test method
execution completion. Same as @Before , @After annotation method will be executed two times if there are two @Test methods in your class.
3. @Test
Method under @Test annotation is known as test method. Execution of
@Test method will start as soon as @Before method execution completed.
Generally we are writing all testing related activity under @Test. We
can use multiple @Test methods in single class too.
4. @BeforeClass
Methods under @BeforeClass annotation will be executed before the any test method starts execution. It will be executed only once even if there are multiple @Test methods in your class.
5. @AfterClass
@AfterClass method will be run on completion of all the test method's execution from that class. Same as @BeforeClass, @AfterClass method will be executed once only.
5. @AfterClass
@AfterClass method will be run on completion of all the test method's execution from that class. Same as @BeforeClass, @AfterClass method will be executed once only.
Execute bellow given example in your eclipse as a debugging mode to verify its execution.
package Testjunit;
import java.util.concurrent.TimeUnit;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Mytest {
WebDriver driver = new FirefoxDriver();
@Before
public void beforetest() {
driver.manage().window().maximize();
driver.get("http://only-testing-blog.blogspot.in/2013/11/new-test.html");
}
@After
public void aftertest() {
driver.quit();
}
@Test
public void test() {
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
driver.findElement(By.xpath("//input[@value='Bike']")).click();
boolean str1 = driver.findElement(By.xpath("//input[@value='Bike']")).isSelected();
if(str1 = true) {
System.out.print("Checkbox is checked");
}
else
{
System.out.print("Checkbox is not checked");
}
}
}
import java.util.concurrent.TimeUnit;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Mytest {
WebDriver driver = new FirefoxDriver();
@Before
public void beforetest() {
driver.manage().window().maximize();
driver.get("http://only-testing-blog.blogspot.in/2013/11/new-test.html");
}
@After
public void aftertest() {
driver.quit();
}
@Test
public void test() {
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
driver.findElement(By.xpath("//input[@value='Bike']")).click();
boolean str1 = driver.findElement(By.xpath("//input[@value='Bike']")).isSelected();
if(str1 = true) {
System.out.print("Checkbox is checked");
}
else
{
System.out.print("Checkbox is not checked");
}
}
}
Here @After method is written before @Test method but JUnit Framework will tells eclipse to execute @Test method first and then @After method