在specflow中传递变量数组

Aut*_*33k 14 arrays variables specflow

有没有办法传递参数数组而不是单独传递每个参数?

例如,我有以下场景:

When i login to a site
then <firstname>, <lastname>, <middleName>, <Desingation>, <Street>, <Apartmentno> are valid
Run Code Online (Sandbox Code Playgroud)

列表可以在上面继续.相反,我可以在数组中传递所有上述变量吗?

Sam*_*der 22

您可以传递逗号分隔的字符串,然后将其转换为列表:

When i login to a site
then 'Joe,Bloggs,Peter,Mr,Some street,15' are valid

[Then("'(.*)' are valid")]
public void ValuesAreValid(List<String> values)
{
}

[StepArgumentTransformation]
public List<String> TransformToListOfString(string commaSeparatedList)
{
    return commaSeparatedList.Split(",").ToList();
}
Run Code Online (Sandbox Code Playgroud)

如果您希望值来自示例,那么您可以这样做:

When I login to a site
then '<values>' are valid
Examples
| values                            |
| Joe,Bloggs,Peter,Mr,Some street,15|
| Joe,Bloggs,Peter,Mr,Some street,16,SomethingElse,Blah|
Run Code Online (Sandbox Code Playgroud)

如果你想使用一个表,那么你可以这样做:

When I login to a site
then the following values are valid
    | FirstName | LastName | MiddleName | Greeting| Etc    | Etc     |
    | Joe       | Bloggs   | Peter      | Mr      | you get| The Idea|
Run Code Online (Sandbox Code Playgroud)

(如果需要,你可以省略标题,我只想使用行值)

你也可以使用这个例子:

When I login to a site
then the following values are valid
    | FirstName | LastName  | MiddleName  | Greeting  | Etc    | Etc     |
    | <name>    | <lastName>| <middleName>| <greeting>| <etc>  | <etc>   |
Run Code Online (Sandbox Code Playgroud)