当我编写一个使用与其他功能相同的措辞的功能时,如何确保为持久性调用正确的步骤?

时间:2010-09-01 20:21:47

标签: bdd specflow

我正在为某些场景编写具有相同措辞的功能。

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的新手,所以感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

Gherkin格式(CuFumber系列中的工具,如SpecFlow使用的)没有任何用于在功能之间共享步骤的结构(在功能内部,您可以使用backgrounds)。

这背后的意义是这些功能应该是自我描述的并且完全是自己完成的。使用“背景”部分,您可以避免使用太长的方案,但仍然可以将所有信息放在文件中。但是,您必须重复每个功能的共享步骤。

作为替代方案,您还可以创建事件绑定(类似于黄瓜中的“钩子”),您可以在其中实现一些分片逻辑。但是这个共享逻辑必须在.NET中实现。