我的功能文件中有一些具有可重复步骤的场景(“我在登录表单上”和“单击登录按钮”)。测试失败,出现错误Steps.LoginSteps 中的步骤定义重复
。
是否可以以某种方式重用重复的步骤?
Feature: LoginFeature
Scenario: Login with valid username and password
Given I am on Login form
And I enter valid username and password
And click on login button
Then I should see the main page
Scenario: Login with invalid username and password
Given I am on Login form
And I enter invalid email username and password
And click on login button
When modal error is displayed
Then click on Ok button
And I should see the login form
最佳答案
所有步骤都是全局的,Cucumber 将使用带有匹配正则表达式的方法。
这背后的逻辑是,如果您在两个或多个地方使用一种方式描述您想要的行为,那么您如何期望该行为在不同的场景中会有所不同?
您的登录步骤提供了一个完美的示例。您是否仅仅因为计划验证正面案例和负面案例而期望进入不同的登录页面?答案显然是否定的,因此不需要多一步实现。
接下来您可能会发现一种从另一个步骤调用一个步骤的冲动。不要那样做。创建一个在这种情况下两个步骤都会调用的辅助方法。
我尽量保持我的步骤非常短,在大多数情况下是一两行。我通常直接委托(delegate)给助手。这使我能够更改抽象级别,并从将参数转换为与被测系统交互的步骤。
关于java - 如何重复使用功能文件中的步骤/重复步骤定义/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46400266/