【发布时间】:2012-10-30 15:07:09
【问题描述】:
我有一个在黄瓜中运行良好的功能(.feature 文件)。
该功能中所有场景的后台只是设置了一个用户,然后以管理员身份登录,例如
Background:
Given I am logged in as a supervisor with an existing supervisee
...loads of scenarios
但是,应用程序的设计/目标发生了变化,无论您是以主管还是用户身份登录,相同的场景都应该可以正常工作。对于大多数其他应用程序的设计对于主管/用户来说不对称,情况并非如此。
是否有任何明智的方法可以避免复制和粘贴具有不同背景的整个功能文件?似乎没有一种方法可以对背景进行参数化(例如,使用 Either: 或:节),也没有一种方法可以拉入带有大量场景的外部文件。想法?
Background:
Given I am logged in as an existing supervisee
...same loads of scenarios
这是一些奇幻的小黄瓜语法(不存在)
Background Outline:
Given I am logged in as a <user>
Backgrounds:
| user |
| supervisor with an existing supervisee |
| an existing supervisee |
...loads of scenarios
另一种不同的幻想小黄瓜语法:
Background:
Given I am logged in as an existing supervisee
Include Scenarios:
supervisor.features
【问题讨论】:
-
我不清楚你想做什么改变。你能展示一下背景,解释它目前表现出的行为,并描述你希望它如何表现吗?
-
@MarkThomas 我已经添加了一个现有的背景、复制和粘贴版本,以及一些“幻想小黄瓜语法”来表明我的目标
-
@TimDiggins 我知道这是一个老问题,但我很好奇您是否找到了一种使用 Gherkin 来描述“背景轮廓”的方法? ...也许有人想出了一个扩展?
-
@muhqu,不,我只是留下了重复。我可以看到太多的复杂性可能不符合 Cucumber 的要求。我有点不喜欢 cucumber(作为开发人员,出于 Spinach 项目核心的大多数原因),并且这些天倾向于只在 rspec 中编写功能/验收测试。我仍然经常编写 Gherkin-y(Given/When/Then)描述作为交流方式,但只是不要让它们可执行。
标签: cucumber