Search This Blog

Sunday, 1 November 2015

TestNg Data Provider Annotation


While executing test cases with a multiple data sets, it is always ideal to parameterize the test cases.

The parameterization of the test data is always a smart task to be taken into consideration based on number of parameters like
 - Number of Iterations
 - Frequency of data is updated
 - Maintenance of test data
 - and many more...


Using TestNg, we can achieve this in multiple ways like
 - Passing as an input from the XML file
 - Using the DataProvider annotation

Using XML configuration, we can configure the variable and data in the xml as shown below:
<parameter name="username"  value="Martin">

And in the Test, the variable can be used like this :


@Parameters({ "username" })
@Test
public void testSingleString(String firstName) {
  System.out.println("Invoked testString " + firstName);
  assert "Martin".equals(firstName);
}



Passing data to the Test using @DataProvider annotation in TestNg
Code snippet to create the test data

@DataProvider(name = "sample")
public static Object[][] getData() {
 // Any code to fetch data.
 Object[][] a = { 
   { 1, "name" }, 
   { 2, "Place" },
   { 3, "email" },
   { 4, "skype" }
   };
 return a;
}

And the test looks like this:

 @Test(dataProvider = "sample")
 public static void runTest(int number, String s) {
  System.out.println("The value of a is : " + number + " and the string is : " + s);

 }
The output will be shown as :



No comments:

Post a Comment