Использование массива в качестве параметра для метода тестирования - PullRequest
0 голосов
/ 03 июля 2018

Обычно параметры метода испытаний следующие:

 @Test //Test method (dataProvider="login")
public void TestCase1(String field1, String field2)
{
driver.findElement(By.xpath("//[@id='username']")).sendKeys(field1);
driver.findElement(By.xpath("//[@id='password']")).sendKeys(field2);
} 

Результат кликните на этом изображении

Вместо конкретных (String field1, String field2) в качестве параметров, могу ли я использовать массив в качестве параметров (String[] fields)? (см. код ниже)

 @Test //Test method (dataProvider="login")
public void TestCase1(String[] fields)
{
driver.findElement(By.xpath("//[@id='username']")).sendKeys(field[0]);
driver.findElement(By.xpath("//[@id='password']")).sendKeys(field[1]);
} 

В результате нажмите на это изображение

Исходя из результатов, есть небольшое различие с точки зрения форматирования.

Мой вопрос: оба метода дают одно и то же значение?

Ответы [ 3 ]

0 голосов
/ 03 июля 2018

Разница явно есть.

При первом подходе вы используете String в качестве объекта.

Второй подход использует массив строк . Вам необходимо понять принципиальную разницу между Массивами и Строка .

Вы можете ссылаться на массивы как контейнер , который содержит несколько объектов / вещей одного типа . И массивы, очевидно, имеют фиксированный размер в природе.

Теперь массив может иметь тип String, тип int и т. Д.

Когда вы пишете String field1, это один объект String.

Но когда вы пишете String[] fields, это массив объектов String, то есть он может иметь несколько объектов String, и вам необходимо объявить размер во время инициализации.

Хотя в вашем сценарии оба будут давать один и тот же результат. Сказав, что вы можете увеличить длину String[] и можете использовать fields[0], fields[1], fields[2], fields[4] и т. Д.

0 голосов
/ 03 июля 2018

Оба метода должны работать. Первый из них более читабелен (вы должны также изменить названия параметров). Также было бы неплохо создать такой класс, как LogIn, в котором в качестве полей будут использоваться имя пользователя и пароль, чтобы он мог быть расширен в будущем или повторно использован несколькими тестами, требующими такой информации, создать компоновщик для тестовых пользователей и т. Д.

0 голосов
/ 03 июля 2018

Оба эти метода приведут к одному и тому же результату.

Однако, поскольку кажется, что вы всегда ожидаете ровно два аргумента, я считаю, что имеет смысл использовать два отдельных параметра вместо массива. Это улучшает удобочитаемость, поскольку вы точно знаете, что представляет собой каждый параметр, и заставляет все вызывающие функции передавать надлежащее количество аргументов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...