首页 > 解决方案 > 黄瓜特征文件中应该给出多少数据?

问题描述

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

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

这是我的一个表的表头,它将用于在按规范开始实际测试之前在数据库中创建 Traveler 记录。但是,正如您所看到的,该表的字段太多,因此太长太适合屏幕,因此很难阅读和维护。其次,它与 DTO 模式紧密耦合。我认为我们不应该在我们的规范上放这么多细节,试图只包括重要的高级数据(例如,考虑到我们有一个名为“James Peterson”的现有旅行者),但团队和 CTO 坚持认为这些细节应该是出现在功能文件上。在我的下一次尝试中,我将表格分成多个表格(例如个人数据、订单数据、护照数据等)。

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

标签: cucumberbddgherkinacceptance-testing

解决方案


您能否将数据表中的字段和值转置如下。

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

并在步骤 def 中实现从值数组中获取值的逻辑。


推荐阅读