Have a question?
Message sent Close
View Categories

Data Providers

📄
filename.js
@DataProvider(name = "myData")
public Object[][] myDataProviderMethod() {

  return new Object[][] {
    { /* first row */ val1, val2, … },
    { /* second row */ val1b, val2b, … },
    // …
  };
}

📄
filename.js
public class LoginTests {

  @DataProvider(name = "credentials")
  public Object[][] creds() {
    return new Object[][] {
      { "alice", "pass1" },
      { "bob",   "pass2" }
    };
  }

  @Test(dataProvider = "credentials")
  public void loginTest(String username, String password) {
    // This test runs twice:
    //  1) username="alice", password="pass1"
    //  2) username="bob",   password="pass2"
    performLogin(username, password);
    Assert.assertTrue(isLoggedIn());
  }
}

📄
filename.js
public class BaseData {
  @DataProvider
  public Object[][] numbers() {
    return new Object[][] { {1},{2},{3} };
  }
}

public class MyTests extends BaseData {
  @Test(dataProvider = "numbers")
  public void testNumber(int n) {
    System.out.println("n = " + n);
  }
}

📄
filename.js
public class Utils {
  @DataProvider(name="users")
  public static Object[][] userProvider() { … }
}

public class UserTests {
  @Test(dataProvider="users", dataProviderClass=Utils.class)
  public void testUser(String username) { … }
}

📄
filename.js
@DataProvider(name = "calculatorData")
public Object[][] calcData() {
  return new Object[][] {
    // {a, b, expectedSum, expectedProduct}
    { 2, 3, 5, 6 },
    { 4, 5, 9, 20 }
  };
}

@Test(dataProvider = "calculatorData")
public void mathTest(int a, int b, int sum, int product) {
  Assert.assertEquals(a + b, sum);
  Assert.assertEquals(a * b, product);
}

📄
filename.js
@DataProvider(name = "dynamic")
public Object[][] dynamicProvider(Method m) {
  if (m.getName().equals("testA")) {
    return new Object[][] { {"A1"},{"A2"} };
  } else if (m.getName().equals("testB")) {
    return new Object[][] { {"B1"},{"B2"},{"B3"} };
  }
  return new Object[0][];
}

@Test(dataProvider = "dynamic")
public void testA(String data) { System.out.println("A: " + data); }

@Test(dataProvider = "dynamic")
public void testB(String data) { System.out.println("B: " + data); }