0
    @DataProvider
    public Iterator<String> getTestData() throws  IOException

    {
        ReadTestData readtestData=new ReadTestData();
        ArrayList<String> testData=readtestData.readExcel();    
        return testData.iterator();
    }


    @Test(dataProvider="getTestData")
    public void addEmployeeExcel(String empRef,String foreName,String surName,String jobTitle,String location)
    {
    System.out.println("empref"+empRef);

    }

why am I getting below error? I have 5 columns in excel sheet

Data provider mismatch Method: addEmployeeExcel([Parameter{index=0, type=java.lang.String, declaredAnnotations=[]}, Parameter{index=1, type=java.lang.String, declaredAnnotations=[]}, Parameter{index=2, type=java.lang.String, declaredAnnotations=[]}, Parameter{index=3, type=java.lang.String, declaredAnnotations=[]}]) Arguments: [(java.lang.String) WTS1]

Mikev
  • 2,012
  • 1
  • 15
  • 27
aron
  • 17
  • 1
  • 4

2 Answers2

0

Your getTestData() method returns a collection of String but your addEmployeeExcel() method takes 5 String parameters. You need to change the parameters of addEmployeeExcel() to take the collection and then extract each variable, empRef, etc.

JeffC
  • 22,180
  • 5
  • 32
  • 55
0

You have to check arguments of testData and pass accordingly for addEmployeeExcel method,

If you don't know, What testData is having, You can Print it in console.

Sample Code:

@DataProvider
public Iterator<Object[]> getTestData()
{
    ArrayList<Object[]> testdata = new ArrayList<Object[]>();

    try {
        reader = new excelUtility(excelTestDataFile);
    } catch (Exception e) {
        e.printStackTrace();
    }

    sheetName = "namingTest";
    for (int rowNumber = 2; rowNumber <= reader.getRowCount(sheetName); rowNumber++) 
    {
        String caseNo = reader.getCellData(sheetName, "Case", rowNumber);
        String groupName = reader.getCellData(sheetName, "Name", rowNumber);
        String message = reader.getCellData(sheetName, "Expected Result", rowNumber);

        Object ob[] =
        { caseNo, groupName, message };
        testdata.add(ob);
    }
    return testdata.iterator();
}

And Here is Test method,

@Test(dataProvider = "getTestData")
public void addGroup(String caseNo, String targetGroupName, String expectedResult) throws Exception {
    }
Ishita Shah
  • 3,955
  • 2
  • 27
  • 51