2016-07-13 4 views
0

Я пытаюсь создать метод dataprovider testNG, который вернет массив объектов пользовательского класса из моего проекта. Этот массив является одномерным массивом, и я не хочу возвращать двухмерный массив из этого метода данных. Пожалуйста, предложите, должен ли Dataprovider всегда возвращать 2D-массив (не менее или больше 2D). Если да, то мне нужна помощь в следующей строке:Как создать метод 1D Dataprovider в TestNG?

возвращение нового объекта [] [] {{user [0]}, {user [1]}, {user [2]}, {user [3]} }

Можем ли мы написать эту строку кода любым лучшим способом, потому что если в будущем этот массив будет расширяться, будет иметь более 4 элементов, чем нам придется отредактировать эту полную функцию, не можем ли мы использовать список и т. Д.?

Ниже приведен код, который я в настоящее время с помощью:

@DataProvider(name = "credentialsProvider", parallel=false) 
public static Object[][] credentialsProvider() throws Exception { 
    User[] user=new User[4]; 
    user[0]=new User(UserTypes.AGENCY_MANAGER,1); 
    user[1]=new User(UserTypes.AGENT,1); 
    user[2]=new User(UserTypes.AGENCY_MODERATOR,1); 
    user[3]=new User(UserTypes.EW_ECS_AGENCY_MANAGER,1); 
    return new Object[][]{{user[0]},{user[1]},{user[2]},{user[3]}}; 
    }; 
} 
+0

у меня есть обертка, которые делают его очень проста в использовании бы и нужно что-то вроде этого? @DataProvider (имя = «категория») \t общественности Object [] [] testCategoryRead() бросает исключение { \t \t возврата поставщику. testDataBuilder() \t \t \t \t .withAttribute ("сайт", siteUS) .capture() \t \t \t \t .build(); \t} –

ответ

0

Существует причина для DataProvider быть 2D - сегодня у вас есть одна строка вы хотите передать как данные, если вы должны были пройти давайте скажем, объект User и объект UserDetails для тестового теста, вам понадобится способ передать оба и, следовательно, единичный массив - это в основном то, что вам нужно передать одному тесту, а 2d - для списка таких нескольких данных.

Почему бы вам просто не перебрать ваш пользовательский массив, чтобы добавить объекты пользователя, а не переходить по индексам в одну строку. Если что-то добавляется, вам просто нужно определить пользовательский объект, цикл for будет циклически перемещаться по всей длине.

Смежные вопросы