Почему {} используется в синтаксисе аннотаций параметров TestNg - PullRequest
0 голосов
/ 03 марта 2019

Мне интересно, почему синтаксис @parameter({"a,"b"}) в testNG имеет эти дополнительные {} скобки.

Мое исследование по этой теме может быть связано с тем, что нам нужно указать несколько данных здесь.

Что заставляет меня думать, что причина использования {} в параметре отличается от @Test, мы можем передавать несколько данных, таких как @Test(priority=1, enabled=true), и мы не используем {} здесь in@Test.

Пожалуйста, помогите мне понять это, направлено ли мое мышление в правильное русло или за этим стоит нечто большее.

1 Ответ

0 голосов
/ 03 марта 2019

Скобки используются для массивов / списков.

В org.testng.annotations.Parameters из TestNG вы можете видеть, что существует только одно объявление метода, которое возвращает String []:

/**
 * The list of variables used to fill the parameters of this method.
 * These variables must be defined in your testng.xml file.
 * For example
 * <p>
 * <code>
 * &#064;Parameters({ "xmlPath" })<br>
 * &#064;Test<br>
 * public void verifyXmlFile(String path) { ... }<br>
 * </code>
 * <p>and in <tt>testng.xml</tt>:<p>
 * <code>
 * &lt;parameter name="xmlPath" value="account.xml" /&gt;<br>
 * </code>
 */
public String[] value() default {};

И по сравнению с этим вы можете видеть в org.testng.annotations.Test TestNG, что, например, priority возвращает int:

/**
 * The scheduling priority. Lower priorities will be scheduled first.
 */
int priority() default 0;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...