Groovy Cucumber/Gherkin:在不同的步骤定义之间传递变量

Groovy Cucumber/Gherkin:在不同的步骤定义之间传递变量,groovy,cucumber,rest-assured,gherkin,Groovy,Cucumber,Rest Assured,Gherkin,我对黄瓜和小黄瓜的世界还不熟悉。我想知道有没有一种在不同的步骤定义文件中共享变量的好方法? 例如:我有两个要素文件(GET和POST),这有两个步骤定义文件(GET和POST)。这两个功能文件都有一个用于设置测试数据的通用步骤。所以我想我将把这些数据设置到一个CommonSteps文件中,我可以这样做。但是在这个数据设置方法中,我给一个变量赋值,这个变量需要在两步定义文件(GET和POST)中使用。我的问题是如何通过Gherkin实现这一点 在不同步骤类中定义的步骤之间共享状态就像使用依赖项注入

我对黄瓜和小黄瓜的世界还不熟悉。我想知道有没有一种在不同的步骤定义文件中共享变量的好方法?
例如:我有两个要素文件(GET和POST),这有两个步骤定义文件(GET和POST)。这两个功能文件都有一个用于设置测试数据的通用步骤。所以我想我将把这些数据设置到一个CommonSteps文件中,我可以这样做。但是在这个数据设置方法中,我给一个变量赋值,这个变量需要在两步定义文件(GET和POST)中使用。我的问题是如何通过Gherkin实现这一点

在不同步骤类中定义的步骤之间共享状态就像使用依赖项注入一样

其他口味的黄瓜使用共享世界对象。您可以使用
公共静态
变量来共享状态,但这很麻烦,因为状态可能在步骤之间泄漏。您可能会遇到这样的情况,即步骤开始相互依赖,共享变量在每次执行之前都不会重置。依赖于其他步骤的步骤是Cucumber社区的一个众所周知的问题,也是您希望不惜一切代价避免的事情

Cucumber支持几种不同的依赖注入框架。如果您的项目已经使用依赖项注入框架,请查看是否可以将其用于您的场景。如果您不使用任何依赖注入框架,我建议您使用PicoContainer

我写了一些关于一些不同选择的博客文章:


它们都是基于Java的。我假设可以将它们与Groovy一起使用,但我还没有尝试过。

这方面有什么帮助吗?我知道有Java依赖注入的概念可以解决这个问题,但我想检查是否有更好的方法通过GHerkin实现。推荐的在Java/jvm中的步骤之间共享变量/对象的方法是通过依赖注入。您可以使用几个依赖关系框架中的一个。恐怕你不能通过小黄瓜分享。如果您正在使用Spring,我已经写了一篇关于将Spring与Java结合使用的博客。感谢您提供的有用信息。我最终使用了publicstatic,到目前为止效果很好,变量在不同的stepdef文件中使用。但我肯定会尝试重新讨论这种方法,因为使用静态变量会产生上述副作用。我没有选择WorldObject,因为它听起来有点复杂。一个公共静态变量可以工作。直到它没有。请记住,它不会在执行之间重置,因此有风险。很可能很危险。