如何在 SpecFlow 场景的步骤定义中生成 List<T>?

Mat*_*llo 1 c# specflow visual-studio-2012

在 SpecFlow步骤定义的文档中,它显示了一个示例,您可以在场景中使用逗号分隔列表在步骤定义中创建列表:

例如:

鉴于我“周二、周五、周日”有空

会导致:

@Given("I am available on \"(.+)\"")
public void I_have_cukes_in_my_belly(List<String> days) {
    // Do something with the days
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我这样做时,我得到了这个:

@Given("I am available on ""(.*)"")
public void I_have_cukes_in_my_belly(string days) {
    // Do something with the days
}
Run Code Online (Sandbox Code Playgroud)

我使用的是 VS 2012 和 SpecFlow 1.9.1 版本。有谁知道我可能做错了什么?或者我该如何解决这个问题?

提前致谢。

chr*_*389 5

你可以这样做:

鉴于我这几天有空:

| 一周中的日子 |

| 星期一 |

| 星期二 |

| 星期三 |

然后你可以使用该表并将其转换为列表......

@Given("I am available on these days:")
public void I_have_cukes_in_my_belly(Table table) {
    List<string> days = new List<string>();
    foreach (var tableRow in table.Rows)
    {
        days.Add(tableRow["DaysOfWeek"]);
    }
 }
Run Code Online (Sandbox Code Playgroud)