温馨提示:本文翻译自stackoverflow.com,查看原文请点击:bdd - How much data should be given in a cucumber feature file?
bdd cucumber gherkin acceptance-testing

bdd - Cucumber 特征文件中应提供多少数据?

发布于 2020-04-26 09:27:03

我正在尝试编写一些Gherkin功能文件,以便使用SpecFlow进行BDD验收测试。我要测试的系统由多个RESTful API组成-系统具有微服务架构。在一个方案中,在确定实际方案之前,我需要确定数据库中已经存在一些记录,因此我在其中包括Backgroundgiven一部分。我遇到的问题是,每个需要存在的记录都是通过API创建的,这些API在其架构联系人中需要大量数据,而团队则需要我在一个小黄瓜记录中指定每个字段及其各自的值表。结果是这样的:

| PassportExpireDate|PassportNumber|PassportCountry |Firstname|Lastname|LocalFirstname|LocalLastname | Birthday | NationalNumber | NationalityCountryId | PassengerType | Gender |PartyId | SourceTravelerId | CellNumber | Price|

这是我的一个表的标题,该表将用于在按规范开始实际测试之前在数据库中创建Traveler记录。但是,如您所见,该表的字段太多,因此太长,无法容纳在屏幕上,因此很难阅读和维护。其次,它与DTO模式紧密耦合。我认为我们不应该在规范中加入太多细节,而仅包括重要的高级数据(例如,假设我们已有一个名为“詹姆斯·彼得森”的旅行者),但是团队和CTO坚持认为这些细节应该存在于功能文件中。在下一次尝试中,我将表格分成多个表格(例如,个人数据,订单数据,护照数据等)。

但是我仍然很困惑,我想我仍然没有做这件事。你有什么建议?我们对此有任何经验法则或最佳实践吗?

查看更多

提问者
Ashkan Taravati
被浏览
22
supputuri 2020-02-09 09:26

您可以按以下方式转置数据表中的字段和值吗?

      |field                 |values    |
      | PassportExpireDate   |[]        |
      | PassportNumber       |[]        |
      | PassportCountry      |[]        |
      | Firstname            |[]        |
      | Lastname             |[]        |
      | LocalFirstname       |[]        |
      | LocalLastname        |[]        |
      | Birthday             |[]        |
      | NationalNumber       |[]        |
      | NationalityCountryId |[]        |
      | PassengerType        |[]        |
      | Gender               |[]        |
      | PartyId              |[]        |
      | SourceTravelerId     |[]        |
      | CellNumber           |[]        |
      | Price                |[]        |

在步骤def中,实现逻辑以从values数组中获取值。