我正在尝试编写一些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模式紧密耦合。我认为我们不应该在规范中加入太多细节,而仅包括重要的高级数据(例如,假设我们已有一个名为“詹姆斯·彼得森”的旅行者),但是团队和CTO坚持认为这些细节应该存在于功能文件中。在下一次尝试中,我将这些表分成多个表(例如,个人数据,订单数据,护照数据等)。
但是我仍然很困惑,我认为我仍然没有做这件事。你有什么建议?我们对此有任何经验法则或最佳实践吗?
您是否可以如下转换数据表中的字段和值。
|field |values |
| PassportExpireDate |[] |
| PassportNumber |[] |
| PassportCountry |[] |
| Firstname |[] |
| Lastname |[] |
| LocalFirstname |[] |
| LocalLastname |[] |
| Birthday |[] |
| NationalNumber |[] |
| NationalityCountryId |[] |
| PassengerType |[] |
| Gender |[] |
| PartyId |[] |
| SourceTravelerId |[] |
| CellNumber |[] |
| Price |[] |
并且在步骤def中执行逻辑以从values数组中获取值。