有没有办法将空值传递给gherkin DataTable?当我向场景大纲中的“示例”传递空值时,它会在请求体中返回空字符串(""),但是当我将空值传递给DataTable时,它会忽略该字段。我还试图在DataTable中传递" null“,但它作为字符串而不是数据类型返回null。在邮递员中,我可以传递null,而且它工作得很好。
发布于 2022-02-18 13:02:33
下面是打印空字符串
Scenario: login registration using cucumber data table
When I submit login details
|Username |"angular2"|
|Password |"password2"|
|UsernameDesc | " "|
第一步:
@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类
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;
}
}
我得到输出
username::
[DEBUG] "angular2"
[DEBUG] pwd::
[DEBUG] "password2"
[DEBUG] usernamedesc::
[DEBUG] " "
或者,如果您希望使用@ParameterType
将" null“转换为null,请使用下面的
Scenario: transformation tests
Given someOtherThing has a value null
步兵式
@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;
}
}
https://stackoverflow.com/questions/71169341
复制相似问题