gpt4 book ai didi

cucumber - SpecFlow - 是否可以在功能文件中重用测试数据?

转载 作者:行者123 更新时间:2023-12-02 19:14:26 25 4
gpt4 key购买 nike

有什么方法可以重用 SpecFlow 特征文件中的数据吗?例如。我有两个场景,它们都使用相同的数据表:

Scenario: Some scenario 1
Given I have a data table
| Field Name | Value |
| Name | "Tom" |
| Age | 16 |
When ...

Scenario: Some scenario 2
Given I have a data table
| Field Name | Value |
| Name | "Tom" |
| Age | 16 |
And I have another data table
| Field Name | Value |
| Brand | "Volvo" |
| City | "London" |
When ...

在这些简单的示例中,表很小,没有什么大问题,但在我的例子中,表有 20 多行,每个表将在至少 5 次测试中使用。

我想象这样的事情:

Having data table "Employee"
| Field Name | Value |
| Name | "Tom" |
| Age | 16 |

Scenario: Some scenario 1
Given I have a data table "Employee"
When ...

Scenario: Some scenario 2
Given I have a data table "Employee"
And I have another data table
| Field Name | Value |
| Brand | "Volvo" |
| City | "London" |
When ...

我在 SpecFlow 文档中找不到类似的内容。共享数据的唯一建议是将其放入 *.cs 文件中。但是,我不能这样做,因为功能文件将由非技术人员使用。

最佳答案

背景是存放此类常见数据的地方,直到数据变得太大并且您的背景部分最终会跨越多个页面。听起来您可能就是这种情况。

您提到每个表都有 20 多行,并且有几个像这样的数据表。在进入场景之前,读者需要费力地了解很多背景知识。还有其他方法可以描述数据吗?当我过去有这样的数据表时,我将详细信息放入自动化代码中的固定装置类中,然后仅描述功能文件中的重要方面。

举个例子,假设“Tom”是潜在的汽车购买者,并且您正在经营某种汽车陈列室,那么他的数据表可能包括:

| Field         | Value |
| Name | Tom |
| Age | 16 |
| Address | .... |
| Phone Number | .... |
| Fav Colour | Red |
| Country | UK |

您的场景 2 可能是“18 岁以下不应该购买汽车”(至少在英国)。在这种情况下,我们不关心汤姆的地址电话号码,只关心他的年龄。我们可以将该场景写为:

Scenario: Under 18s shouldnt be able to buy a car
Given there is a customer "Tom" who is under 16
When he tries to buy a car
Then I should politely refuse

我们不将 Tom 的详细信息表保留在功能文件中,而是只引用重要部分。当 Given 步骤运行时,自动化可以从我们的灯具中查找“Tom”。该步骤引用了他的年龄,以便 a) 特征文件的读者清楚 Tom 是谁,b) 确保夹具数据仍然有效。

该场景的读者将立即了解汤姆(他 16 岁)的重要之处,并且他们不必在场景和背景之间不断引用。其他场景也可以使用 Tom,如果他们对他的信息的其他方面(例如地址)感兴趣,那么他们可以指定相关信息假设有一位客户“Tom”住在唐宁街 10 号

哪种方法最好取决于您拥有多少数据。如果是几个表中的少量字段,那么将其放在后台,但是一旦它达到 10 个以上字段或大量表(大概我们有很多潜在客户),那么我建议将其移到后台之外功能文件并仅描述每个场景中的相关信息。

关于cucumber - SpecFlow - 是否可以在功能文件中重用测试数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21554483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com