我正在为某些场景编写具有相同措辞的功能。
Feature: User Management
Scenario: Edit an existing user's details
Given a user exists
和
Feature: Group Management
Scenario: Add a user to a group's membership
Given a user exists
And a group exists
在SpecFlow中,有一种很好的方法来定义每个功能调用的步骤吗?我的场景写作是否会以错误的方式解决这个问题?我应该咬紧牙关并改变我的给定陈述来表示它们适用于哪些特征?我是BDD和SpecFlow的新手,所以感谢任何帮助。
答案 0 :(得分:1)
Gherkin格式(CuFumber系列中的工具,如SpecFlow使用的)没有任何用于在功能之间共享步骤的结构(在功能内部,您可以使用backgrounds)。
这背后的意义是这些功能应该是自我描述的并且完全是自己完成的。使用“背景”部分,您可以避免使用太长的方案,但仍然可以将所有信息放在文件中。但是,您必须重复每个功能的共享步骤。
作为替代方案,您还可以创建事件绑定(类似于黄瓜中的“钩子”),您可以在其中实现一些分片逻辑。但是这个共享逻辑必须在.NET中实现。