2016-09-15 137 views

回答

0

您可以传递pojo(记得将content-type设置为application/xml)并放心将自动将其转换为XML。例如:

@XmlRootElement 
public class Greeting { 
    private String firstName; 
    private String lastName; 

    public String getFirstName() { 
     return firstName; 
    } 

    public void setFirstName(String firstName) { 
     this.firstName = firstName; 
    } 

    public String getLastName() { 
     return lastName; 
    } 

    public void setLastName(String lastName) { 
     this.lastName = lastName; 
    } 
} 

,然后你可以使用它像这样:

Greeting greeting = new Greeting(); 
greeting.setFirstName("John"); 
greeting.setLastName("Doe"); 

given().contentType(ContentType.XML).and().body(object).when().post("/somewhere"). .. 

它会发送下面的XML:

<greeting> 
    <firstName>John</firstName> 
    <lastName>Doe</lastName> 
</greeting> 

比方说服务器与响应与上面看到的相同的XML,则可以验证响应状态代码和正文是这样的:

given(). 
     contentType(ContentType.XML). 
     body(object). 
when(). 
     post("/somewhere"). 
then(). 
     statusCode(200). 
     body("greeting.firstName", equalTo("John")). 
     body("greeting.lastName", equalTo("Doe")); 

REST如果服务器返回XML内容类型,保证会自动理解响应主体是XML。请注意0​​是从org.hamcrest.Matchers#equalTo静态导入的。