StepArgumentTransformation和适当的正则表达式

时间:2018-10-15 14:54:00

标签: cucumber bdd specflow regex-group

我正在尝试使用specFlow中的StepArgumentTransformation转换 string -> List 。我将提到2种情况,第一种情况是工作方案,第二种情况是非工作方案。

  1. 工作案例:

-。feature文件:   Then Get StateForecast critical points for "ironwood"

-step.cs文件:

[Then(@"Get StateForecast critical points for ""(.*)""")]
public void ThenGetStateForecastCriticalPointsFor(List<long> substationChildCircuits)

参数转换:

[StepArgumentTransformation]
public List<long> SubstationStringToChildCircuitsConverter(string substationName)
  1. 不工作的情况下

由于在 ArgumentTransformation.cs 文件中,我有另一种方法,该方法的返回类型为List,但输入不同,Table,->

[StepArgumentTransformation] public List<long> FeederGidTableTransform(Table feederGids)我当时想在[StepArgumentTransformation(@“ REGEX”)]中提供一些参数正则表达式。这样做的原因是因为这两个参数方法没有不同,因为它们具有相同的返回类型。 我已经尝试过这样的事情:

[StepArgumentTransformation(@"(\.+)")]
public List<long> SubstationStringToChildCircuitsConverter(string substationName)

或:

[StepArgumentTransformation(@"ironwood")]
public List<long> SubstationStringToChildCircuitsConverter(string substationName)

for step.cs中的方法写为:

[Then(@"Get StateForecast critical points for ""(.*)""")]
public void ThenGetStateForecastCriticalPointsFor(List<long> substationChildCircuits)

,也写成(带括号):

[Then(@"Get StateForecast critical points for (""(.*)"")")]
public void ThenGetStateForecastCriticalPointsFor(List<long> substationChildCircuits)

无论如何,我遇到类似(取决于不同用例)的错误:

  • 错误:从'System.String'到'System.Collections.Generic.List`1 [[System.Int64,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089]的无效转换'。

  • 错误:参数计数不匹配。

我的目标是正确设置这些正则表达式参数,以便我可以捕获/拦截特定输入并调用所需的步骤自变量转换方法。

我还检查了How to properly indicate which StepArgumentTrasformation to use with step?

0 个答案:

没有答案