使用Specflow时处理日期

时间:2018-02-27 11:55:34

标签: c# .net regex bdd specflow

1

我有一个像这样的Specflow功能:

Given A date of 1,1,2018

当我使用“生成步骤定义”时,会产生如下方法:

[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?等等。

1 个答案:

答案 0 :(得分:1)

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();
}