使用 Specflow 时处理日期

Dealing with dates when using Specflow

1

我有这样的 Specflow 功能:

Given A date of 1,1,2018

当我使用"Generate step definitions"时,一个方法是这样产生的:

[Given(@"A date of (.*),(.*)")]
public void GivenADateOf(Decimal p0, int p1)
{
    ScenarioContext.Current.Pending();
}

如何更改接受三个参数的方法?即

public void GivenADateOf(int p0, int p1, int p2)
{
    ScenarioContext.Current.Pending();
}

2

还说我想把功能改成这样:

Given A date of 1/1/2018

如何更改接受一个参数的方法?即

public void GivenADateOf(datetime p0)
{
    ScenarioContext.Current.Pending();
}

我是 Specflow 的新手。我看过这里:How does specflow handle multiple parameters? 以及其他地方。

SpecFlow 允许指定不同的正则表达式来捕获参数。

对于第一个选项,我会使用:

[Given(@"A date of ([0-9]*),([0-9]*),([0-9]*)")]
public void GivenADateOf(int day, int month, int year)
{
   ScenarioContext.Current.Pending();
}

对于第二个选项,我会使用与您的日期格式相对应的正则表达式。例如:

[Given(@"A date of (.*)")]
public void GivenADateOf(DataTime dataTime)
{
     ScenarioContext.Current.Pending();
}