0

我创建了一个具有多个功能的功能文件。在我的功能文件中,我的 Given 和 When 总是相同的,只有我的 then 不同,因为我正在测试不同的输出度量。是否值得只为我的 Given 和 When 提供一个代码,为我的 Then 提供一个代码来一次性验证所有输出度量。

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

示例

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
4

2 回答 2

2

通常最好将您Given的 s 和Whens 分开,以便您的功能更好地阅读。

在您的情况下,最好的办法是使用 aScenario Outline而不是 a 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
}
于 2018-05-29T09:31:12.887 回答
0

对于您的示例

生成给定接口

执行批处理时

然后生成传输度量

生成给定接口

执行批处理时

然后生成分配度量

您可以使用表格并将其更改如下:

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

这将生成一个 Then 步骤

于 2018-05-29T09:21:11.200 回答