在java

时间:2016-11-29 11:17:14

标签: java cucumber cucumber-jvm gherkin

我在gherkin中写了以下场景

  Scenario: Correct login should take the user to the next screen
  Given User is on the login screen
  When User enters username as "Donald"
  And User enters password as "Trump"
  And User clicks the login button
  Then User should be taken to the next screen

我将以下步骤映射到cucumber-jvm到这个场景

 ...
 @Given("^User is on the login screen$)
 public void goToLoginScreen(){
    //some logic
 }

如何在映射的步骤定义方法中的@Given注释之间获取内容。我有几个用例,这将有所帮助,但我无法知道到目前为止。

2 个答案:

答案 0 :(得分:0)

将整个步骤括在括号中。这将是第一个被捕获的小组。

@Given("^(User is on the login screen)$)
 public void goToLoginScreen(String stepText){
    System.out.println(stepText);
    //some logic
 }

答案 1 :(得分:0)

您可以使用捕获组捕获步骤中的变量。例如:

 @When("^User enters username as (.*)$")
 public void entersUsernameAs(String username){
    //some logic
 }

您还可以在一个步骤中使用多个变量。例如:

 @Given("^User logs in as (.*) with password (.*)$")
 public void usersLogsInAs(String username, String password){
    //go to loginpage
    //enter username
    //enter password
    //click login button
 }

您可以使用不同的捕获组。我通常使用(.*)表示可以是任意内容的字符串,使用(\\d+)表示整数。 您还可以将(option|other|else)用于一组有限的字符串(在此示例中为"option""other""else"),这些字符串仅匹配使用这些字符串的步骤而不是任何字符串(.*)