我需要检查网页上表格中的值。在大多数情况下,这些是预先知道的值。但有时价值是,例如,当前日期。是否有可能写出类似" =今天()"在"然后"步骤,而不是只为这种情况创建一个新步骤?
所以我可以通过SpecFlow做这样的事情:
Then I verify values in MyTable
| ColumnA | ColumnB |ColumnC |
| Electricity | 100 | =today() |
| Electricity | 200 | =today() |
答案 0 :(得分:0)
如果值必须来自表格,那么您只需检查已知值并从中创建日期。沿着这些未经测试的路线:
[Then("I verify values in MyTable")]
public void ThenIVerifyValuesInMyTable(Table table)
{
foreach(var row in table.Rows)
{
DateTime comparisonDate;
if (row[2].Value =='Today')
{
comparisonDate=DateTime.Today;
}
else
{
comparisonDate = DateTime.Parse(row[2]);
}
comparisonDate.Should().Be(myTable.ExpectedDate);
}
}
答案 1 :(得分:0)
希望这是一个答案 Default Values Specflow Step Definitions SpecFlow支持创建“步骤参数转换”。使用它们,您可以创建可以从不同模式解析日期时间的方法:
[StepArgumentTransformation("todays date")]
public DateTime TransformToday()
{
return DateTime.Today;
}
之后,您只需在步骤中使用DateTime参数,其余部分由SpecFlow完成......
[Given(@"myfield equals (.*)")`enter code here`]
public void MyfieldEqualsTodaysDate(DateTime date)
{
//do stuff
}