簡體   English   中英

將值從特征文件傳遞給 Specflow Scenario 方法

[英]Passing values to Specflow Scenario methods from feature file

我在 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 或是否有其他選擇

我不確定您是否可以在功能文件中傳遞類似的參數,但您可以利用標簽來實現您的目標

在功能文件中執行此操作

 @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

您可以按照 specflow 中的文檔來實現這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM