【发布时间】:2017-03-24 11:02:32
【问题描述】:
有没有办法将一个黄瓜特征文件导入另一个?这样我就可以将针对不同流程的重复逻辑/操作/业务验证移动到一个通用功能文件中。
注意:我在一些事情上有效地使用了后台选项,例如在每个功能文件中启动应用程序。如果考虑它,即使那个背景也是重复的。 :)
非常感谢。
【问题讨论】:
标签: protractor cucumber regression e2e-testing regression-testing
有没有办法将一个黄瓜特征文件导入另一个?这样我就可以将针对不同流程的重复逻辑/操作/业务验证移动到一个通用功能文件中。
注意:我在一些事情上有效地使用了后台选项,例如在每个功能文件中启动应用程序。如果考虑它,即使那个背景也是重复的。 :)
非常感谢。
【问题讨论】:
标签: protractor cucumber regression e2e-testing regression-testing
无法将一个功能文件包含在另一个功能文件中。
如果可以,那么 Gherkin 可以被认为是一种编程语言。 Gherkin 不是一种编程语言,因此缺少函数或模块等特性。
那么,对于重复出现的背景,您能做些什么呢?我的方法可能是看看我是否可以将您在后台执行的常见初始化移到堆栈中。我会看看我是否可以实现一些可以执行相同步骤的助手,然后将背景最小化为类似
Given the world is prepared
在后台。或者只是确保在需要它的场景中首先完成了准备工作。甚至可以隐藏它,以便在第一步中完成呼叫。这实际上会将背景从功能文件中移开,并为您的业务利益相关者隐藏它。
需要考虑的一件事是,背景对您的业务利益相关者重要吗?他们关心背景还是对他们来说只是噪音?如果它很重要,那么不要隐藏背景。如果背景不重要,则尽可能隐藏它们。
【讨论】:
你可以通过抽象和背景来处理这个。
给定任意数量的先决条件,如果您将它们组合在一起并给它们命名,您可以一步调用它们。在黄瓜领域,这样做比进口更有效。
BDD 就是在不同的抽象级别上工作。特别是当您创建某些特定行为时,您会在详细级别上工作。一旦创建了行为,您就可以以更抽象的方式使用该行为。
导入只是让您可以访问详细信息。这是一件坏事,因为您最终会在同一个地方处理不同级别的抽象,这既危险又令人困惑。
【讨论】: