25

我有一个在黄瓜中运行良好的功能(一个 .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
4

1 回答 1

6

如果是我,我只会吸收重复:

http://dannorth.net/2008/06/30/let-your-examples-flow/

另一种方法是在功能上使用标签,指示您要针对两个用户组运行方案。然后使用 Around 钩子运行场景两次,每种类型的用户一次。

我们之前已经讨论过诸如背景大纲之类的事情,但我们得出的结论是,实施它不值得额外的复杂性。

于 2012-11-09T14:23:38.987 回答