cucumber - 黄瓜特征文件中应该给出多少数据?
问题描述
我正在尝试编写一些 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 坚持认为这些细节应该是出现在功能文件上。在我的下一次尝试中,我将表格分成多个表格(例如个人数据、订单数据、护照数据等)。
但我仍然很困惑,我想我仍然没有做这件事。你有什么建议?我们对此有任何经验法则或最佳实践吗?
解决方案
您能否将数据表中的字段和值转置如下。
|field |values |
| PassportExpireDate |[] |
| PassportNumber |[] |
| PassportCountry |[] |
| Firstname |[] |
| Lastname |[] |
| LocalFirstname |[] |
| LocalLastname |[] |
| Birthday |[] |
| NationalNumber |[] |
| NationalityCountryId |[] |
| PassengerType |[] |
| Gender |[] |
| PartyId |[] |
| SourceTravelerId |[] |
| CellNumber |[] |
| Price |[] |
并在步骤 def 中实现从值数组中获取值的逻辑。
推荐阅读
- php - 为什么我会得到这个法师
- c# - 当通过 OData 对 ExtraElements 应用 $filter 时,为什么 Mongo IQueryable 会抛出 InvalidOperationException?
- sql-server - 更改 SQL 列的数据类型时更新 SSIS 包
- python - 熊猫将空白值写入 CSV
- java - 从具有外部数据库连接的 spring 项目构建 jar 文件
- python-3.x - 我在写入我的 excel 文件时遇到问题
- laravel - 按 id 集排序集合
- c# - 启动调试时启动外部.exe
- java - Java 11 给出了 Unsupported handshake message: server_hello_done on HTTPS connection with client certificate
- math - 在给定购买价格和折扣 % 时求解标价