首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Get Cucumber-jvm step as String in java

Get Cucumber-jvm step as String in java
EN

Stack Overflow用户
提问于 2016-11-29 19:17:14
回答 2查看 827关注 0票数 0

我用小黄瓜写了下面的场景

代码语言:javascript
复制
  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中的以下步骤映射到此场景

代码语言:javascript
复制
 ...
 @Given("^User is on the login screen$)
 public void goToLoginScreen(){
    //some logic
 }

如何在映射的步骤定义方法中获取@Given注释之间的内容。我有几个用例,在这些用例中,这将是有帮助的,但到目前为止还不能了解如何做到这一点。

EN

回答 2

Stack Overflow用户

发布于 2016-11-29 21:31:04

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

代码语言:javascript
复制
@Given("^(User is on the login screen)$)
 public void goToLoginScreen(String stepText){
    System.out.println(stepText);
    //some logic
 }
票数 0
EN

Stack Overflow用户

发布于 2017-12-30 17:04:39

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

代码语言:javascript
复制
 @When("^User enters username as (.*)$")
 public void entersUsernameAs(String username){
    //some logic
 }

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

代码语言:javascript
复制
 @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"),这些字符串将只匹配使用这些字符串的步骤,而不是像(.*)这样的任何字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40864556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档