社区首页 >问答首页 >如何在gherkin DataTable中传递空值?

如何在gherkin DataTable中传递空值?
EN

Stack Overflow用户
提问于 2022-02-17 22:39:59
回答 1查看 454关注 0票数 0

有没有办法将空值传递给gherkin DataTable?当我向场景大纲中的“示例”传递空值时,它会在请求体中返回空字符串(""),但是当我将空值传递给DataTable时,它会忽略该字段。我还试图在DataTable中传递" null“,但它作为字符串而不是数据类型返回null。在邮递员中,我可以传递null,而且它工作得很好。

EN

回答 1

Stack Overflow用户

发布于 2022-02-18 13:02:33

下面是打印空字符串

代码语言:javascript
代码运行次数:0
复制
Scenario:  login registration using cucumber data table
      When I submit login details
       |Username     |"angular2"|
        |Password    |"password2"|
        |UsernameDesc | "        "|

第一步:

代码语言:javascript
代码运行次数:0
复制
        @When ("^I submit login details$")
 public void submitLoginDetails(DataTable dataTable ){
    List<loginDetails> list = dataTable.transpose().asList(loginDetails.class);
    list.stream().forEach(System.out::println);
    for (loginDetails l : list) {
        System.out.println("username::"+l.getUserName());
        System.out.println("pwd::"+l.getPassword());
        System.out.println("usernamedesc::"+l.getUsernameDesc());
    }

loginDetails类

代码语言:javascript
代码运行次数:0
复制
public class loginDetails {
    
    private String Username;
    private String Password;
    private String UsernameDesc;
    
    public  loginDetails(String uname, String pwd, String udesc){
        this.Username=uname;
        this.Password = pwd;
        this.UsernameDesc = udesc;
    }
    public String getUserName() {
        return Username;
    }
    public String getPassword() {
        return Password;
    }
    public String getUsernameDesc() {
        return UsernameDesc;
    }
}

我得到输出

代码语言:javascript
代码运行次数:0
复制
       username::
[DEBUG] "angular2"
[DEBUG] pwd::
[DEBUG] "password2"
[DEBUG] usernamedesc::
[DEBUG] "        "

或者,如果您希望使用@ParameterType将" null“转换为null,请使用下面的

代码语言:javascript
代码运行次数:0
复制
Scenario: transformation tests
    
   Given someOtherThing has a value null

步兵式

代码语言:javascript
代码运行次数:0
复制
@Given("someOtherThing has a value {ConvertToNull}")
public void checkNull(Boolean b){
assertThat(b).isEqualTo(null);  //this test passed
}

@ParameterType(".*?")
 //you can only use reference types as method return type to return null. 
 //primitives will not work
public Boolean ConvertToNull(String v) {  
if(v.equals("null")){
          return null;
 }  
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71169341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文