Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何重复使用要素文件中的步骤/复制步骤定义/_Java_Cucumber_Gherkin_Cucumber Java - Fatal编程技术网

Java 如何重复使用要素文件中的步骤/复制步骤定义/

Java 如何重复使用要素文件中的步骤/复制步骤定义/,java,cucumber,gherkin,cucumber-java,Java,Cucumber,Gherkin,Cucumber Java,我在一个功能文件中有几个场景,其中包含可重复的步骤(“我在登录表单上”和“单击登录按钮”)。测试失败,错误步骤中存在重复的步骤定义。LoginSteps。 是否可以以某种方式重用重复的步骤 Feature: LoginFeature Scenario: Login with valid username and password Given I am on Login form And I enter valid username and password And cl

我在一个功能文件中有几个场景,其中包含可重复的步骤(“我在登录表单上”和“单击登录按钮”)。测试失败,错误
步骤中存在重复的步骤定义。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将使用带有匹配正则表达式的方法

这背后的逻辑是,如果你在两个或多个地方用一种方式描述你想要的行为,你怎么能期望这种行为在不同的场景中有所不同

您给出了一个登录步骤的完美示例。您是否希望仅仅因为您计划验证一个肯定和否定的案例就出现在不同的登录页面上?答案显然是否定的,因此不需要一步多的实施

下一件事你可能会发现是一种从另一个步骤调用另一个步骤的冲动。不要那样做。在这种情况下,创建两个步骤都调用的助手方法


我尽量让我的步子很短,在大多数情况下是一两行。我通常只是直接委托给助手。这允许我更改抽象级别,从将参数转换为步骤,到与测试中的系统交互。

您可以使用后台来执行相同功能中所有场景的通用步骤(目标是避免重复) 例如:

您还可以修改按钮单击的步骤以传递参数。这样,您只有一个按钮单击步骤,可以在不同的场景中通过不同的参数(登录、确定等)使用该步骤

例如:

Click on "login" button

您是否为“我在登录表单上”创建了两个具有相同模式匹配的方法?您可以添加相关的步骤定义吗?确切地说,步骤定义文件也包含重复的方法。我已经在步骤定义文件中删除了重复的方法,现在可以正常工作了!感谢有背景的建议。我已经在后台分离了“Given I on Login form”,它看起来更好!
Click on "login" button