在黄瓜 jvm 中,如何正确地将步骤拆分为多个文件?

Posted

技术标签:

【中文标题】在黄瓜 jvm 中,如何正确地将步骤拆分为多个文件?【英文标题】:In cucumber jvm how do you split steps into multiple files properly? 【发布时间】:2016-04-25 19:03:31 【问题描述】:

我有一个包含 11 个方法的步骤定义文件——每个方法都是 @Given、@When 或 @Then 方法。正在测试两种类型的事物,Feature1 事物和 Feature2 事物。稍后会有 Feature3 的东西,Feature4 的东西,等等。现在,虽然复杂性和绝对大小都很小,但我想将与 Feature1 关联的“事物”放入 StepsFile1,将与 Feature2 关联的事物放入 StepsFile2。两者之间共有的东西(变量和方法)需要放在某个地方。 StepsFileZero?? Cucumber 要求一个特定的步骤定义只出现一次——没有重复。反正我不想重复。是否有适合我和这种情况的参考资料或资源?

这个链接上的人 (http://grokbase.com/t/gg/cukes/12bk4kx7m0/cucumber-jvm-what-is-the-best-way-to-split-up-a-large-step-definition-class) 似乎也有同样的问题,但答案中的几个链接是死胡同,因为有一个从 GitHub/cucumber 到 cucumber.io 的网站迁移。

【问题讨论】:

将步骤文件耦合到功能文件已被称为antipattern,另一种建议是按域概念分隔您的步骤。 【参考方案1】:

只需定义一个包含在各种功能中使用的步骤的步骤类,并在您的 Runner 中为您需要的每个功能声明它的包。 如果您在步骤之间共享数据,这将变得有点复杂。假设您有一个共享步骤来收集用户数据,并且不同的 Then-steps 必须评估这些数据。由于黄瓜不允许继承,因此您必须在两个步骤类中注入数据对象。一个定义用户的数据,另一个将评估它。

【讨论】:

以上是关于在黄瓜 jvm 中,如何正确地将步骤拆分为多个文件?的主要内容,如果未能解决你的问题,请参考以下文章

黄瓜特征文件不识别步骤

如何有效地将具有一定周期性的列表拆分为多个列表?

CMake项目结构:如何正确地将库合并在一起并将它们包含在多个可执行文件中

如何在黄瓜特征文件中给出多个参数

执行多个黄瓜特征文件

无法实例化测试步骤类