| package test.dataprovider; |
| |
| import java.lang.reflect.Method; |
| |
| import org.testng.Assert; |
| import org.testng.annotations.DataProvider; |
| import org.testng.annotations.Test; |
| |
| public class MethodTest { |
| |
| @DataProvider(name = "dp1") |
| public Object[][] createData(Method m) { |
| Assert.assertEquals("test1", m.getName()); |
| Assert.assertEquals("test.dataprovider.MethodTest", m.getDeclaringClass().getName()); |
| return new Object[][] { |
| new Object[] { "Cedric" }, |
| new Object[] { "Alois" }, |
| }; |
| } |
| |
| @Test(dataProvider = "dp1") |
| public void test1(String s) { |
| Assert.assertTrue("Cedric".equals(s) || "Alois".equals(s)); |
| } |
| |
| private int m_test2 = 0; |
| private int m_test3 = 0; |
| |
| @DataProvider(name = "dp2") |
| public Object[][] createData2(Method m) { |
| if ("test2".equals(m.getName())) m_test2++; |
| else if ("test3".equals(m.getName())) m_test3++; |
| else throw new RuntimeException("Received method " + m + ", expected test2 or test3"); |
| Assert.assertEquals("test.dataprovider.MethodTest", m.getDeclaringClass().getName()); |
| return new Object[][] { |
| new Object[] { "Cedric" }, |
| }; |
| } |
| |
| @Test(dataProvider = "dp2") |
| public void test2(String s) { |
| Assert.assertTrue("Cedric".equals(s)); |
| } |
| |
| @Test(dataProvider = "dp2") |
| public void test3(String s) { |
| Assert.assertTrue("Cedric".equals(s)); |
| } |
| |
| @Test(dependsOnMethods = {"test2", "test3"}) |
| public void multipleTestMethods() { |
| Assert.assertEquals(1, m_test2); |
| Assert.assertEquals(1, m_test3); |
| } |
| |
| } |