Specflow功能文件代码 - 数据定义c#

时间:2018-05-29 08:59:15

标签: c# selenium nunit specflow feature-file

我创建了一个包含多个功能的功能文件。在我的功能文件中,我的Given和When总是一样的,只有我当时的不同,因为我正在测试不同的输出测量。是否值得为我的Given和When提供一个代码,然后为我的一个代码一次性验证所有输出度量。

如果这是可能的,我将如何去做呢?

示例

Given Interface is generated
When batch is executed
Then transfer measure is generated

Given Interface is generated
When batch is executed
Then allocation measure is generated

2 个答案:

答案 0 :(得分:2)

通常最好将GivenWhen分开,以便更好地阅读您的功能。

在您的情况下,最好的办法是使用Scenario Outline而不是Scenario。这允许您使用标记化表来断言多个不同的结果,给出相同的初始步骤:

Scenario Outline: Batch execution works correctly
    Given  Interface is generated
    When batch is executed
    Then <measure_type> is generated
Examples: 
    | measure_type       |
    | transfer measure   |
    | allocation measure |

在您的步骤中,您有单独的方法断言已生成正确的measure type

[Then(@"transfer measure is generated")]
public void ThenTransferMeasureIsGenerated()
{
    // your assertion logic here
}

答案 1 :(得分:0)

对于您的示例

给定接口生成

执行批处理时

然后生成转移措施

给定接口生成

执行批处理时

然后生成分配度量

您可以使用表格并按如下方式进行更改:

Given Interface is generated    
When batch is executed   
Then '<val>' measure is generated    
Examples:    
|val|    
|transfer|    
|allocation|

这将生成一个Then步骤