поставщики данных в testng с использованием selenium webdriver и java

    @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);

    }

почему я получаю ошибку ниже? У меня есть 5 столбцов в листе excel

Метод несоответствия поставщика данных: addEmployeeExcel([Parameter{index=0, type=java.lang.String, DeclarationAnnotations=[]}, Parameter{index=1, type=java.lang.String, DeclarationAnnotations=[]}, Parameter{ индекс = 2, тип = java.lang.String, объявленные аннотации = []}, параметр {индекс = 3, тип = java.lang.String, объявленные аннотации = []}]) Аргументы: [(java.lang.String) WTS1 ]


person aron    schedule 25.06.2018    source источник
comment
Может быть, вы можете распечатать свои тестовые данные и проверить.   -  person Dakshinamurthy Karra    schedule 25.06.2018


Ответы (2)


Ваш метод getTestData() возвращает набор String, но ваш метод addEmployeeExcel() принимает 5 параметров String. Вам нужно изменить параметры addEmployeeExcel(), чтобы взять коллекцию, а затем извлечь каждую переменную, empRef и т. д.

person JeffC    schedule 25.06.2018

Вы должны проверить аргументы testData и соответственно передать метод addEmployeeExcel,

Если вы не знаете, что имеет testData, вы можете распечатать его в консоли.

Пример кода:

@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();
}

И вот метод тестирования,

@Test(dataProvider = "getTestData")
public void addGroup(String caseNo, String targetGroupName, String expectedResult) throws Exception {
    }
person Ishita Shah    schedule 26.06.2018
comment
Это объект класса excelUtility, в котором есть код извлечения Excel. - person Ishita Shah; 26.06.2018
comment
Является ли excelUtility определяемым пользователем классом? - person aron; 26.06.2018
comment
Да ! Определяемый пользователем метод для получения данных Excel - person Ishita Shah; 26.06.2018
comment
нет, там более 200+ строк кода. Вам нужно просто проверить возвращаемое значение testData. - person Ishita Shah; 27.06.2018