Java 如何构造步骤定义

Java 如何构造步骤定义,java,bdd,cucumber-jvm,Java,Bdd,Cucumber Jvm,我正在学习BDD,我正在使用Cucumber来实现这些特性 我的问题是:如何将步骤定义构造成文件 例如,设想以下场景: Scenario 1: Account has sufficient funds Given the account balance is \$100 And the card is valid And the machine contains enough money When the Account Holder requests \$20 Then the ATM sho

我正在学习BDD,我正在使用Cucumber来实现这些特性

我的问题是:如何将步骤定义构造成文件

例如,设想以下场景:

Scenario 1: Account has sufficient funds
Given the account balance is \$100
And the card is valid
And the machine contains enough money
When the Account Holder requests \$20
Then the ATM should dispense \$20
And the account balance should be \$80
And the card should be returned
如何将其转换为步骤定义

我是否应该创建许多步骤类
AccountSteps
CardSteps
ATMSteps
ATMServiceSteps
(以保存
提取
获取余额
等方法?我是否应该按功能或其他方式拆分它

我看到许多主题解释了如何创建它们(我现在知道了),但是如何最好地构建这些步骤以实现可伸缩性并避免大量重复


提前感谢

一种结构化步骤的方法可以是在您的领域中按概念进行。按照您的建议,每个概念说一个步骤类

就我个人而言,我不会从那里开始。我可能会从一个类开始进行步骤。当它变得太大时,我会将该类分开。最初希望它不会变得太大

将所有步骤保持在同一个类中的好处是,步骤之间的任何共享状态都很容易。将步骤拆分为多个类可能意味着您需要解决步骤类之间共享状态的问题。这是一个已解决的问题,您可以使用依赖项注入共享一个公共类。但与不使用hav相比,它更复杂e共享任何步骤