2016-09-15 58 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靜態導入的。