StepArgumentTransformation и правильное регулярное выражение - PullRequest
0 голосов
/ 15 октября 2018

Я пытаюсь преобразовать строку -> Список , используя StepArgumentTransformation в specFlow.Я упомяну 2 случая, 1-й случай как рабочий сценарий и 2-й случай как нерабочий сценарий.

  1. Рабочий случай:

-. Файл функции: 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, но другой ввод, Таблица, ->

[StepArgumentTransformation] public List<long> FeederGidTableTransform(Table feederGids) Я думал предоставить параметр-регулярное выражение в [StepArgumentTransformation (@ "REGEX")].Причина этого в том, что эти два метода аргумента не отличаются, поскольку они имеют одинаковый тип возвращаемого значения.Я пробовал что-то вроде этого:

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

или:

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

для метода в steps.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, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089]]'.

  • ошибка: параметрнесовпадение счетчиков.

Моя цель - правильно установить эти параметры регулярного выражения, чтобы я мог перехватывать / перехватывать определенные входные данные и вызывать нужные методы преобразования аргументов шага.

У меня также естьпроверил Как правильно указать, какую StepArgumentTrasformation использовать с шагом?

...