Unit testing 相当于参数化测试夹具的SpecFlow

Unit testing 相当于参数化测试夹具的SpecFlow,unit-testing,cucumber,specflow,gherkin,Unit Testing,Cucumber,Specflow,Gherkin,我正在使用SpecFlow编写一组测试,我希望使用不同的输入数据多次运行每个测试。我可以用场景大纲来实现这一点,但我想用相同的测试用例来运行功能文件中的每个场景 我知道我可以使用后台来共享一个案例的设置,但我正在寻找后台和场景大纲之间的交叉点,在这里我可以向后台提供一个数据表,并每行运行一次整个功能文件 在NUnit中,我将使用参数化测试夹具来实现这一点。SpecFlow中是否有任何等效项?您可以利用SpecFlow创建数据表对象,并在后台使用它 Background: Given I’

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

我知道我可以使用后台来共享一个案例的设置,但我正在寻找后台和场景大纲之间的交叉点,在这里我可以向后台提供一个数据表,并每行运行一次整个功能文件

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

您可以利用SpecFlow创建数据表对象,并在
后台使用它

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 );
          }
     }
[绑定]
[给定(@“我已输入以下信息”)]
public void UseData(TechTalk.SpecFlow.Table)
{
var enumeratePersons=table.CreateSet();
foreach(个人中的个人P){
log.Info(P.FirstName+“”+P.LastName);
}
}
您可能必须使用属性或specflow上下文在绑定之间共享数据。当运行
Background
时,它将为每个场景创建数据对象,但跨绑定使用它是用户的责任

您可以利用specflow创建数据表对象并在
后台使用它

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 );
          }
     }
[绑定]
[给定(@“我已输入以下信息”)]
public void UseData(TechTalk.SpecFlow.Table)
{
var enumeratePersons=table.CreateSet();
foreach(个人中的个人P){
log.Info(P.FirstName+“”+P.LastName);
}
}

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

这是否回答了您的问题?这回答了你的问题吗?