我有以下三个类:
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)?