【问题标题】:SpecFlow equivalent to parameterized test fixtureSpecFlow 等效于参数化测试夹具
【发布时间】:2020-03-27 12:48:37
【问题描述】:

我正在使用 SpecFlow 编写一组测试,并且我想使用不同的输入数据多次运行每个测试。我可以使用场景大纲来做到这一点,但我想使用相同的测试用例运行功能文件中的每个场景。

我知道我可以使用背景来共享一个案例的设置,但我正在寻找类似背景和场景大纲之间的交叉点,我可以在其中向背景提供数据表并运行整个功能每行一次。

在 NUnit 中,我会使用参数化测试夹具来实现这一点。 SpecFlow 中是否有任何等价物?

【问题讨论】:

标签: unit-testing cucumber specflow gherkin


【解决方案1】:

您可以利用specflow assist helpers 创建数据表对象并在Background 中使用它

Background:
    Given I’ve Entered The Following Information
    | FirstName| LastName|Email      |
    | Abcd1    | Xyz1    |abc1@xyz1.com|
    | Abcd2   | Xyz2     |abc2@xyz2.com|

class Person
{
string FirstName { get; set; }
string LastName { get; set; }
string email { get; set; }
}

用法:

    [Binding]
  [Given(@"I’ve Entered The Following Information")]
    public void UseData(TechTalk.SpecFlow.Table table)
    {
        var enumeratePersons = table.CreateSet<Person>();   
          foreach (Person P in enumeratePersons ){

             log.Info(P.FirstName + " " + P.LastName );
          }
     }

您可能必须使用属性或规范流上下文在绑定之间共享数据。当Background 运行时,它将为每个场景创建数据对象,但跨绑定使用它是用户的责任

【讨论】:

    猜你喜欢
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-02
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多