我正在尝试使用specFlow中的StepArgumentTransformation转换 string -> List 。我将提到2种情况,第一种情况是工作方案,第二种情况是非工作方案。
-。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)
由于在 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?