Передача значений в методы сценария Specflow из файла объектов - PullRequest
1 голос
/ 23 января 2020

В моем файле Hook.cs определен пользовательский тег, например

 [BeforeScenario("AfterUpgradeTag")]
 public void BeforeScenarioAfterUpgrade()
 {
  // Code execution here
 }

. Я хочу изменить определение метода следующим образом:

 [BeforeScenario("AfterUpgradeTag")]
 public void BeforeScenarioAfterUpgrade(bool flag)
 {
  if(flag)
  // Code execution here
  else
  //Do a clean up 
 }

. хочу использовать это в файле функций как что-то вроде

@AfterUpgradeTag(bool val = false)

Я много искал для этого. Я хочу знать, возможно ли это с помощью Specflow или если есть какие-либо альтернативы

1 Ответ

0 голосов
/ 23 января 2020

Я не уверен, что вы можете передавать такие параметры в файле объектов, но вы можете использовать теги для достижения своей цели

В файле объектов сделайте это

 @upgrade @false
  Scenario: testing upgrade

В классе привязки

 public static ScenarioContext _scenarioContext;

и конструктор класса привязки

 public BindingClass(ScenarioContext scenarioContext)
        {

            _scenarioContext = scenarioContext;

        }

и ваш метод BeforeScenario определяется следующим образом в классе BindingClass

[BeforeScenario("upgrade")]
        public void BeforeScenarioUpgradeFalseorTrue()
        {
            if (BindingClass._scenarioContext.ScenarioInfo.Tags.Contains("false"))
            {
                log.Info("upgrade is false..");
            }

            if (BindingClass._scenarioContext.ScenarioInfo.Tags.Contains("true"))
            {
                log.Info("upgrade is true..");
            }
        }

, если вы хотите передать true в файле функций просто сделайте

 @upgrade @true
  Scenario: testing upgrade
...