如何在Cucumber中将Gherkin步骤定义的数据映射到Java对象?

3

我有以下三个类:

class City {
 String name;
 String code;
}

class Address {
 String street;
 City city;
}

class Person {
 String name;
 int age;
 Address address;
}

现在,我有一个REST API来POST一个人。

POST /person

{
 "name":"John",
 "age":21,
 "address":{
  "street":"First st.",
  "city":{
   "name":"London"
  }
 }
}

为了测试这个API,我使用Cucumber创建了一个场景,并在其中创建了以下步骤定义:
Then a person is created using REST api "/person"
| name | age | address.street | address.city.name |
| John | 21  | First st.      | London            |

在我的Java课程中,我创建了以下方法来映射此步骤:

public void create_a_person(Person person){
 System.out.println("Person - " + person);
}

这段代码无法使用步骤中给出的数据创建一个人对象。它会抛出以下异常:

cucumber.runtime.CucumberException: Not a Map or List type: class Person

然而,如果提供了数据,它很容易创建Person对象,例如:
Then a person is created using REST api "/person"
| name | age |
| John | 21  | 

有什么办法可以让Cucumber将步骤数据映射到子成员变量上(就像这种情况下的Address和City)?
1个回答

2

请避免使用基于链接的答案,因为当链接失效时,您有用的答案也就无用了。 - amod

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接