如何构建黄瓜步骤定义

时间:2017-03-14 01:01:40

标签: 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 should dispense \$20
And the account balance should be \$80
And the card should be returned

我如何将其翻译成步骤定义?

我应该创建多个步骤类AccountStepsCardStepsATMStepsATMServiceSteps(以保存withdrawgetBalance等方法吗?我应该按功能拆分吗?

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

提前致谢

1 个答案:

答案 0 :(得分:0)

构建步骤的一种方法可以是您域中的概念。按照你的建议,每个概念说一步。

就个人而言,我不会从那里开始。我可能会从一个课程开始。当它变得太大时,我会把那个课分开。并且最初希望它不会变得太大。

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