com.jayway.restassured.specification
Interface ResponseSpecification

All Superinterfaces:
RequestSender
All Known Subinterfaces:
FilterableResponseSpecification
All Known Implementing Classes:
ResponseSpecificationImpl

public interface ResponseSpecification
extends RequestSender

Allows you to specify how the expected response must look like in order for a test to pass.


Method Summary
 ResponseSpecification and()
          Syntactic sugar, e.g.
 ResponseSpecification body(org.hamcrest.Matcher<?> matcher, org.hamcrest.Matcher<?>... additionalMatchers)
          Expect that the response body conforms to one or more Hamcrest matchers.
 ResponseSpecification body(String key, List<Argument> arguments, org.hamcrest.Matcher matcher, Object... additionalKeyMatcherPairs)
          Same as body(String, org.hamcrest.Matcher, Object...) expect that you can pass arguments to the key.
 ResponseSpecification body(String key, org.hamcrest.Matcher<?> matcher, Object... additionalKeyMatcherPairs)
          Expect that the JSON or XML response body conforms to one or more Hamcrest matchers.
 ResponseSpecification content(org.hamcrest.Matcher<?> matcher, org.hamcrest.Matcher<?>... additionalMatchers)
          Expect that the response content conforms to one or more Hamcrest matchers.
 ResponseSpecification content(String key, List<Argument> arguments, org.hamcrest.Matcher matcher, Object... additionalKeyMatcherPairs)
          Same as content(String, java.util.List, org.hamcrest.Matcher, Object...) expect that you can pass arguments to the key.
 ResponseSpecification content(String key, org.hamcrest.Matcher<?> matcher, Object... additionalKeyMatcherPairs)
          Expect that the JSON or XML response content conforms to one or more Hamcrest matchers.
 ResponseSpecification contentType(groovyx.net.http.ContentType contentType)
          Set the response content type to be contentType.
 ResponseSpecification contentType(String contentType)
          Set the response content type to be contentType.
 ResponseSpecification cookie(String cookieName)
          Expect that a cookie exist in the response, regardless of value (it may have no value at all).
 ResponseSpecification cookie(String cookieName, org.hamcrest.Matcher<?> expectedValueMatcher)
          Expect that a response cookie matches the supplied cookie name and hamcrest matcher.
 ResponseSpecification cookie(String cookieName, Object expectedValue)
          Expect that a response cookie matches the supplied name and value.
 ResponseSpecification cookies(Map<String,?> expectedCookies)
          Expect that response cookies matches those specified in a Map.
 ResponseSpecification cookies(String firstExpectedCookieName, Object firstExpectedCookieValue, Object... expectedCookieNameValuePairs)
          Expect that response cookies matches the supplied cookie names and values.
 ResponseSpecification defaultParser(Parser parser)
          Register a default predefined parser that will be used if no other parser (registered or pre-defined) matches the response content-type.
 ResponseSpecification expect()
          Syntactic sugar, e.g.
 RequestSpecification given()
          Returns the request com.jayway.restassured.specification so that you can define the properties of the request.
 ResponseSpecification header(String headerName, org.hamcrest.Matcher<?> expectedValueMatcher)
          Expect that a response header matches the supplied header name and hamcrest matcher.
 ResponseSpecification header(String headerName, String expectedValue)
          Expect that a response header matches the supplied name and value.
 ResponseSpecification headers(Map<String,?> expectedHeaders)
          Expect that response headers matches those specified in a Map.
 ResponseSpecification headers(String firstExpectedHeaderName, Object firstExpectedHeaderValue, Object... expectedHeaders)
          Expect that response headers matches the supplied headers and values.
 ResponseSpecification log()
          Log (i.e.
 ResponseSpecification logOnError()
          Log (i.e.
 ResponseSpecification parser(String contentType, Parser parser)
          Register a content-type to be parsed using a predefined parser.
 RequestSpecification request()
          Returns the request com.jayway.restassured.specification so that you can define the properties of the request.
 ResponseSpecification response()
          Syntactic sugar, e.g.
 ResponseSpecification root(String rootPath)
          Set the root path of the response body so that you don't need to write the entire path for each expectation.
 ResponseSpecification rootPath(String rootPath)
          Set the root path of the response body so that you don't need to write the entire path for each expectation.
 ResponseSpecification spec(ResponseSpecification responseSpecificationToMerge)
          Expect that the response matches an entire specification.
 ResponseSpecification specification(ResponseSpecification responseSpecificationToMerge)
          Expect that the response matches an entire specification.
 ResponseSpecification statusCode(int expectedStatusCode)
          Expect that the response status code matches an integer.
 ResponseSpecification statusCode(org.hamcrest.Matcher<Integer> expectedStatusCode)
          Expect that the response status code matches the given Hamcrest matcher.
 ResponseSpecification statusLine(org.hamcrest.Matcher<String> expectedStatusLine)
          Expect that the response status line matches the given Hamcrest matcher.
 ResponseSpecification statusLine(String expectedStatusLine)
          Expect that the response status line matches the given String.
 ResponseSpecification that()
          Syntactic sugar, e.g.
 ResponseSpecification then()
          Syntactic sugar, e.g.
 ResponseSpecification when()
          Syntactic sugar, e.g.
 RequestSpecification with()
          Returns the request com.jayway.restassured.specification so that you can define the properties of the request.
 
Methods inherited from interface com.jayway.restassured.specification.RequestSender
delete, delete, get, get, head, head, post, post, put, put
 

Method Detail

content

ResponseSpecification content(org.hamcrest.Matcher<?> matcher,
                              org.hamcrest.Matcher<?>... additionalMatchers)
Expect that the response content conforms to one or more Hamcrest matchers. E.g.
 // Expect that the response content (body) contains the string "winning-numbers"
 expect().content(containsString("winning-numbers")).when().get("/lotto");

 // Expect that the response content (body) contains the string "winning-numbers" and "winners"
 expect().content(containsString("winning-numbers"), containsString("winners")).when().get("/lotto");
 

Parameters:
matcher - The hamcrest matcher that must response content must match.
additionalMatchers - Optionally additional hamcrest matchers that must return true.
Returns:
the response specification

content

ResponseSpecification content(String key,
                              org.hamcrest.Matcher<?> matcher,
                              Object... additionalKeyMatcherPairs)
Expect that the JSON or XML response content conforms to one or more Hamcrest matchers.

JSON example

Assume that a GET request to "/lotto" returns a JSON response containing:

 { "lotto":{
   "lottoId":5,
   "winning-numbers":[2,45,34,23,7,5,3],
   "winners":[{
     "winnerId":23,
     "numbers":[2,45,34,23,3,5]
   },{
     "winnerId":54,
     "numbers":[52,3,12,11,18,22]
   }]
  }}
 
You can verify that the lottoId is equal to 5 like this:
 expect().content("lotto.lottoId", equalTo(5)).when().get("/lotto");
 
You can also verify that e.g. one of the the winning numbers is 45.
 expect().content("lotto.winning-numbers", hasItem(45)).when().get("/lotto");
 
Or both at the same time:
 expect().content("lotto.lottoId", equalTo(5)).and().content("lotto.winning-numbers", hasItem(45)).when().get("/lotto");
 
or a slightly short version:
 expect().content("lotto.lottoId", equalTo(5), "lotto.winning-numbers", hasItem(45)).when().get("/lotto");
 

XML example

Assume that a GET request to "/xml" returns a XML response containing:

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

You can now verify that the firstName is equal to "John" like this:
 expect().content("greeting.firstName", equalTo("John")).when().get("/xml");
 
To verify both the first name and last name you can do like this:
 expect().content("greeting.firstName", equalTo("John")).and().content("greeting.lastName", equalTo("Doe")).when().get("/xml");
 
Or the slightly shorter version of:
 expect().content("greeting.firstName", equalTo("John"), "greeting.lastName", equalTo("Doe")).when().get("/xml");
 

Notes

Note that if the response content type is not of type application/xml or application/json you cannot use this verification.

The only difference between the content and body methods are of syntactic nature.

Parameters:
matcher - The hamcrest matcher that must response content must match.
additionalKeyMatcherPairs - Optionally additional hamcrest matchers that must return true.
Returns:
the response specification

body

ResponseSpecification body(String key,
                           List<Argument> arguments,
                           org.hamcrest.Matcher matcher,
                           Object... additionalKeyMatcherPairs)
Same as body(String, org.hamcrest.Matcher, Object...) expect that you can pass arguments to the key. This is useful in situations where you have e.g. pre-defined variables that constitutes the key:
 String someSubPath = "else";
 int index = 1;
 expect().body("something.%s[%d]", withArgs(someSubPath, index), equalTo("some value")). ..
 
or if you have complex root paths and don't wish to duplicate the path for small variations:
 expect().
          root("filters.filterConfig[%d].filterConfigGroups.find { it.name == 'Gold' }.includes").
          body("", withArgs(0), hasItem("first")).
          body("", withArgs(1), hasItem("second")).
          ..
 
The key and arguments follows the standard formatting syntax of Java.

Note that withArgs can be statically imported from the com.jayway.restassured.RestAssured class.

Parameters:
key - The body key
matcher - The hamcrest matcher that must response body must match.
additionalKeyMatcherPairs - Optionally additional hamcrest matchers that must return true.
Returns:
the response specification
See Also:
body(String, org.hamcrest.Matcher, Object...)

statusCode

ResponseSpecification statusCode(org.hamcrest.Matcher<Integer> expectedStatusCode)
Expect that the response status code matches the given Hamcrest matcher. E.g.
 expect().statusCode(equalTo(200)).when().get("/something");
 

Parameters:
expectedStatusCode - The expected status code matcher.
Returns:
the response specification

statusCode

ResponseSpecification statusCode(int expectedStatusCode)
Expect that the response status code matches an integer. E.g.
 expect().statusCode(200).when().get("/something");
 
This is the same as:
 expect().statusCode(equalTo(200)).when().get("/something");
 

Parameters:
expectedStatusCode - The expected status code.
Returns:
the response specification

statusLine

ResponseSpecification statusLine(org.hamcrest.Matcher<String> expectedStatusLine)
Expect that the response status line matches the given Hamcrest matcher. E.g.
 expect().statusLine(equalTo("No Content")).when().get("/something");
 

Parameters:
expectedStatusLine - The expected status line matcher.
Returns:
the response specification

statusLine

ResponseSpecification statusLine(String expectedStatusLine)
Expect that the response status line matches the given String. E.g.
 expect().statusLine("No Content").when().get("/something");
 
This is the same as:
 expect().statusLine(equalTo("No Content")).when().get("/something");
 

Parameters:
expectedStatusLine - The expected status line.
Returns:
the response specification

headers

ResponseSpecification headers(Map<String,?> expectedHeaders)
Expect that response headers matches those specified in a Map.

E.g. expect that the response of the GET request to "/something" contains header headerName1=headerValue1 and headerName2=headerValue2:

 Map expectedHeaders = new HashMap();
 expectedHeaders.put("headerName1", "headerValue1"));
 expectedHeaders.put("headerName2", "headerValue2");

 expect().response().headers(expectedHeaders).when().get("/something");
 

You can also use Hamcrest matchers:

 Map expectedHeaders = new HashMap();
 expectedHeaders.put("Content-Type", containsString("charset=UTF-8"));
 expectedHeaders.put("Content-Length", "160");

 expect().headers(expectedHeaders).when().get("/something");
 

Parameters:
expectedHeaders - The Map of expected response headers
Returns:
the response specification

headers

ResponseSpecification headers(String firstExpectedHeaderName,
                              Object firstExpectedHeaderValue,
                              Object... expectedHeaders)
Expect that response headers matches the supplied headers and values.

E.g. expect that the response of the GET request to "/something" contains header Pragma=no-cache and Content-Encoding=gzip:

 expect().headers("Pragma", "no-cache", "Content-Encoding", "gzip").when().get("/something");
 

You can also use Hamcrest matchers:

 expect().response().headers("Content-Type", containsString("application/json"), "Pragma", equalsTo("no-cache")).when().get("/something");
 
and you can even mix string matching and hamcrest matching:
 expect().headers("Content-Type", containsString("application/json"), "Pragma", "no-cache").when().get("/something");
 

Parameters:
firstExpectedHeaderName - The name of the first header
firstExpectedHeaderValue - The value of the first header
expectedHeaders - A list of expected "header name" - "header value" pairs.
Returns:
the response specification

header

ResponseSpecification header(String headerName,
                             org.hamcrest.Matcher<?> expectedValueMatcher)
Expect that a response header matches the supplied header name and hamcrest matcher.

E.g. expect that the response of the GET request to "/something" contains header Pragma=no-cache:

 expect().header("Pragma", containsString("no")).when().get("/something");
 

You can also expect several headers:

 expect().header("Pragma", equalsTo("no-cache")),and().header("Content-Encoding", containsString("zip")).when().get("/something");
 
Also take a look at headers(String, Object, Object...) )} for a short version of passing multiple headers.

Parameters:
headerName - The name of the expected header
expectedValueMatcher - The Hamcrest matcher that must conform to the value
Returns:
the response specification

header

ResponseSpecification header(String headerName,
                             String expectedValue)
Expect that a response header matches the supplied name and value.

E.g. expect that the response of the GET request to "/something" contains header Pragma=no-cache:

 expect().header("Pragma", "no-cache").when().get("/something");
 

You can also expect several headers:

 expect().header("Pragma", "no-cache"),and().header("Content-Encoding", "gzip").when().get("/something");
 
Also take a look at headers(String, Object, Object...) for a short version of passing multiple headers.

Parameters:
headerName - The name of the expected header
expectedValue - The value of the expected header
Returns:
the response specification

cookies

ResponseSpecification cookies(Map<String,?> expectedCookies)
Expect that response cookies matches those specified in a Map.

E.g. expect that the response of the GET request to "/something" contains cookies cookieName1=cookieValue1 and cookieName2=cookieValue2:

 Map expectedCookies = new HashMap();
 expectedCookies.put("cookieName1", "cookieValue1"));
 expectedCookies.put("cookieName2", "cookieValue2");

 expect().response().cookies(expectedCookies).when().get("/something");
 

You can also use Hamcrest matchers:

 Map expectedCookies = new HashMap();
 expectedCookies.put("cookieName1", containsString("Value1"));
 expectedCookies.put("cookieName2", "cookieValue2");

 expect().cookies(expectedCookies).when().get("/something");
 

Parameters:
expectedCookies - A Map of expected response cookies
Returns:
the response specification

cookie

ResponseSpecification cookie(String cookieName)
Expect that a cookie exist in the response, regardless of value (it may have no value at all).

Parameters:
cookieName - the cookie to validate that it exists
Returns:
the response specification

cookies

ResponseSpecification cookies(String firstExpectedCookieName,
                              Object firstExpectedCookieValue,
                              Object... expectedCookieNameValuePairs)
Expect that response cookies matches the supplied cookie names and values.

E.g. expect that the response of the GET request to "/something" contains cookies cookieName1=cookieValue1 and cookieName2=cookieValue2:

 expect().cookies("cookieName1", "cookieValue1", "cookieName2", "cookieValue2").when().get("/something");
 

You can also use Hamcrest matchers:

 expect().response().cookies("cookieName1", containsString("Value1"), "cookieName2", equalsTo("cookieValue2")).when().get("/something");
 
and you can even mix string matching and hamcrest matching:
 expect().cookies("cookieName1", containsString("Value1"), "cookieName2", "cookieValue2").when().get("/something");
 

Parameters:
firstExpectedCookieName - The name of the first cookie
firstExpectedCookieValue - The value of the first cookie
expectedCookieNameValuePairs - A list of expected "cookie name" - "cookie value" pairs.
Returns:
the response specification

cookie

ResponseSpecification cookie(String cookieName,
                             org.hamcrest.Matcher<?> expectedValueMatcher)
Expect that a response cookie matches the supplied cookie name and hamcrest matcher.

E.g. expect that the response of the GET request to "/something" contain cookie cookieName1=cookieValue1

 expect().cookie("cookieName1", containsString("Value1")).when().get("/something");
 

You can also expect several cookies:

 expect().cookie("cookieName1", equalsTo("cookieValue1")),and().cookie("cookieName2", containsString("Value2")).when().get("/something");
 
Also take a look at cookies(String, Object, Object...) for a short version of passing multiple cookies.

Parameters:
cookieName - The name of the expected cookie
expectedValueMatcher - The Hamcrest matcher that must conform to the value
Returns:
the response specification

cookie

ResponseSpecification cookie(String cookieName,
                             Object expectedValue)
Expect that a response cookie matches the supplied name and value.

E.g. expect that the response of the GET request to "/something" contain cookie cookieName1=cookieValue1:

 expect().cookie("cookieName1", "cookieValue1").when().get("/something");
 

You can also expect several cookies:

 expect().cookie("cookieName1", "cookieValue1"),and().cookie("cookieName2", "cookieValue2").when().get("/something");
 
Also take a look at cookies(String, Object, Object...) for a short version of passing multiple cookies.

Parameters:
cookieName - The name of the expected cookie
expectedValue - The value of the expected cookie
Returns:
the response specification

log

ResponseSpecification log()
Log (i.e. print to system out) the response body to system out. This is mainly useful for debug purposes when writing your tests. A shortcut for:
 given().filter(ResponseLoggingFilter.responseLogger()). ..
 

Returns:
the response specification

logOnError

ResponseSpecification logOnError()
Log (i.e. print to system out) the response body to system out if an error occurs. This is mainly useful for debug purposes when writing your tests. A shortcut for:
 given().filter(ErrorLoggingFilter.errorLogger()). ..
 

Returns:
the response specification

rootPath

ResponseSpecification rootPath(String rootPath)
Set the root path of the response body so that you don't need to write the entire path for each expectation. E.g. instead of writing:
 expect().
          body("x.y.firstName", is(..)).
          body("x.y.lastName", is(..)).
          body("x.y.age", is(..)).
          body("x.y.gender", is(..)).
 when().
          get(..);
you can use a root path and do:
 expect().
          rootPath("x.y").
          body("firstName", is(..)).
          body("lastName", is(..)).
          body("age", is(..)).
          body("gender", is(..)).
 when().
          get(..);
 
Note that this method is exactly the same as root(String).

Parameters:
rootPath - The root path to use.

root

ResponseSpecification root(String rootPath)
Set the root path of the response body so that you don't need to write the entire path for each expectation. E.g. instead of writing:
 expect().
          body("x.y.firstName", is(..)).
          body("x.y.lastName", is(..)).
          body("x.y.age", is(..)).
          body("x.y.gender", is(..)).
 when().
          get(..);
you can use a root and do:
 expect().root("x.y").
          body("firstName", is(..)).
          body("lastName", is(..)).
          body("age", is(..)).
          body("gender", is(..)).
 when().
          get(..);
 
Note that this method is exactly the same as rootPath(String) but slightly shorter.

Parameters:
rootPath - The root path to use.

contentType

ResponseSpecification contentType(groovyx.net.http.ContentType contentType)
Set the response content type to be contentType.

Note that this will affect the way the response is decoded. E,g. if you can't use JSON/XML matching (see e.g. body(String, Matcher, Object...)) if you specify a content-type of "text/plain". If you don't specify the response content type REST Assured will automatically try to figure out which content type to use.

Parameters:
contentType - The content type of the response.
Returns:
the response specification

contentType

ResponseSpecification contentType(String contentType)
Set the response content type to be contentType.

Note that this will affect the way the response is decoded. E,g. if you can't use JSON/XML matching (see e.g. body(String, Matcher, Object...)) if you specify a content-type of "text/plain". If you don't specify the response content type REST Assured will automatically try to figure out which content type to use.

Parameters:
contentType - The content type of the response.
Returns:
the response specification

body

ResponseSpecification body(org.hamcrest.Matcher<?> matcher,
                           org.hamcrest.Matcher<?>... additionalMatchers)
Expect that the response body conforms to one or more Hamcrest matchers. E.g.
 // Expect that the response body (content) contains the string "winning-numbers"
 expect().body(containsString("winning-numbers")).when().get("/lotto");

 // Expect that the response body (content) contains the string "winning-numbers" and "winners"
 expect().body(containsString("winning-numbers"), containsString("winners")).when().get("/lotto");
 

Parameters:
matcher - The hamcrest matcher that must response body must match.
additionalMatchers - Optionally additional hamcrest matchers that must return true.
Returns:
the response specification

body

ResponseSpecification body(String key,
                           org.hamcrest.Matcher<?> matcher,
                           Object... additionalKeyMatcherPairs)
Expect that the JSON or XML response body conforms to one or more Hamcrest matchers.

JSON example

Assume that a GET request to "/lotto" returns a JSON response containing:

 { "lotto":{
   "lottoId":5,
   "winning-numbers":[2,45,34,23,7,5,3],
   "winners":[{
     "winnerId":23,
     "numbers":[2,45,34,23,3,5]
   },{
     "winnerId":54,
     "numbers":[52,3,12,11,18,22]
   }]
  }}
 
You can verify that the lottoId is equal to 5 like this:
 expect().body("lotto.lottoId", equalTo(5)).when().get("/lotto");
 
You can also verify that e.g. one of the the winning numbers is 45.
 expect().body("lotto.winning-numbers", hasItem(45)).when().get("/lotto");
 
Or both at the same time:
 expect().body("lotto.lottoId", equalTo(5)).and().body("lotto.winning-numbers", hasItem(45)).when().get("/lotto");
 
or a slightly short version:
 expect().body("lotto.lottoId", equalTo(5), "lotto.winning-numbers", hasItem(45)).when().get("/lotto");
 

XML example

Assume that a GET request to "/xml" returns a XML response containing:

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

You can now verify that the firstName is equal to "John" like this:
 expect().body("greeting.firstName", equalTo("John")).when().get("/xml");
 
To verify both the first name and last name you can do like this:
 expect().body("greeting.firstName", equalTo("John")).and().body("greeting.lastName", equalTo("Doe")).when().get("/xml");
 
Or the slightly shorter version of:
 expect().body("greeting.firstName", equalTo("John"), "greeting.lastName", equalTo("Doe")).when().get("/xml");
 

Notes

Note that if the response body type is not of type application/xml or application/json you cannot use this verification.

The only difference between the content and body methods are of syntactic nature.

Parameters:
key - The body key
matcher - The hamcrest matcher that must response body must match.
additionalKeyMatcherPairs - Optionally additional hamcrest matchers that must return true.
Returns:
the response specification

content

ResponseSpecification content(String key,
                              List<Argument> arguments,
                              org.hamcrest.Matcher matcher,
                              Object... additionalKeyMatcherPairs)
Same as content(String, java.util.List, org.hamcrest.Matcher, Object...) expect that you can pass arguments to the key. This is useful in situations where you have e.g. pre-defined variables that constitutes the key:
 String someSubPath = "else";
 int index = 1;
 expect().body("something.%s[%d]", withArgs(someSubPath, index), equalTo("some value")). ..
 
or if you have complex root paths and don't wish to duplicate the path for small variations:
 expect().
          root("filters.filterConfig[%d].filterConfigGroups.find { it.name == 'Gold' }.includes").
          body("", withArgs(0), hasItem("first")).
          body("", withArgs(1), hasItem("second")).
          ..
 
The key and arguments follows the standard formatting syntax of Java.

Note that withArgs can be statically imported from the com.jayway.restassured.RestAssured class.

Parameters:
key - The body key
matcher - The hamcrest matcher that must response body must match.
additionalKeyMatcherPairs - Optionally additional hamcrest matchers that must return true.
Returns:
the response specification
See Also:
content(String, org.hamcrest.Matcher, Object...)

when

ResponseSpecification when()
Syntactic sugar, e.g.
 expect().body(containsString("OK")).when().get("/something");
 
is that same as:
 expect().body(containsString("OK")).get("/something");
 

Returns:
the response specification

given

RequestSpecification given()
Returns the request com.jayway.restassured.specification so that you can define the properties of the request.
 expect().body(containsString("OK")).given().parameters("param1", "value1").when().get("/something");
 

Returns:
the request com.jayway.restassured.specification

that

ResponseSpecification that()
Syntactic sugar, e.g.
 expect().that().body(containsString("OK")).when().get("/something");
 
is that same as:
 expect().body(containsString("OK")).get("/something");
 

Returns:
the response specification

request

RequestSpecification request()
Returns the request com.jayway.restassured.specification so that you can define the properties of the request.
 expect().body(containsString("OK")).and().request().parameters("param1", "value1").when().get("/something");
 

Returns:
the request com.jayway.restassured.specification

response

ResponseSpecification response()
Syntactic sugar, e.g.
 expect().response().body(containsString("OK")).when().get("/something");
 
is that same as:
 expect().body(containsString("OK")).get("/something");
 

Returns:
the response specification

and

ResponseSpecification and()
Syntactic sugar, e.g.
 expect().body(containsString("OK")).and().body(containsString("something else")).when().get("/something");
 
is that same as:
 expect().body(containsString("OK")).body(containsString("something else")).when().get("/something");
 

Returns:
the response specification

with

RequestSpecification with()
Returns the request com.jayway.restassured.specification so that you can define the properties of the request.
 expect().body(containsString("OK")).and().with().request().parameters("param1", "value1").get("/something");
 

Returns:
the request com.jayway.restassured.specification

then

ResponseSpecification then()
Syntactic sugar, e.g.
 expect().body(containsString("OK")).then().get("/something");
 
is that same as:
 expect().body(containsString("OK")).get("/something");
 

Returns:
the response specification

expect

ResponseSpecification expect()
Syntactic sugar, e.g.
 expect().body(containsString("OK")).and().expect().body(containsString("something else")).when().get("/something");
 
is that same as:
 * expect().body(containsString("OK")).and().body(containsString("something else")).when().get("/something");
 

Returns:
the response specification

spec

ResponseSpecification spec(ResponseSpecification responseSpecificationToMerge)
Expect that the response matches an entire specification.
 ResponseSpecification responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();

 expect().
         spec(responseSpec).
         body("x.y.z", equalTo("something")).
 when().
        get("/something");
 
This is useful when you want to reuse multiple different expectations in several tests.

The specification passed to this method is merged with the current specification. Note that the supplied specification can overwrite data in the current specification. The following settings are overwritten:

The following settings are merged: This method is the same as specification(ResponseSpecification) but the name is a bit shorter.

Parameters:
responseSpecificationToMerge - The specification to merge with.
Returns:
the response specification

specification

ResponseSpecification specification(ResponseSpecification responseSpecificationToMerge)
Expect that the response matches an entire specification.
 ResponseSpecification responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();

 expect().
         specification(responseSpec).
         body("x.y.z", equalTo("something")).
 when().
        get("/something");
 
This is useful when you want to reuse multiple different expectations in several tests.

The specification passed to this method is merged with the current specification. Note that the supplied specification can overwrite data in the current specification. The following settings are overwritten:

The following settings are merged: This method is the same as spec(ResponseSpecification) but the name is a bit longer.

Parameters:
responseSpecificationToMerge - The specification to merge with.
Returns:
the response specification

parser

ResponseSpecification parser(String contentType,
                             Parser parser)
Register a content-type to be parsed using a predefined parser. E.g. let's say you want parse content-type application/vnd.uoml+xml with the XML parser to be able to verify the response using the XML dot notations:
 expect().body("document.child", equalsTo("something"))..
 
Since application/vnd.uoml+xml is not registered to be processed by the XML parser by default you need to explicitly tell REST Assured to use this parser before making the request:
 expect().parser("application/vnd.uoml+xml", Parser.XML).when(). ..;
 
You can also specify by it for every response by using:
 RestAssured.registerParser("application/vnd.uoml+xml", Parser.XML);
 

Parameters:
contentType - The content-type to register
parser - The parser to use when verifying the response.

defaultParser

ResponseSpecification defaultParser(Parser parser)
Register a default predefined parser that will be used if no other parser (registered or pre-defined) matches the response content-type. E.g. let's say that for some reason no content-type is defined in the response but the content is nevertheless JSON encoded. To be able to expect the content in REST Assured you need to set the default parser:
 expect().defaultParser(Parser.JSON).when(). ..;
 
You can also specify it for every response by using:
 RestAssured.defaultParser(Parser.JSON);
 

Parameters:
parser - The parser to use when verifying the response if no other parser is found for the response content-type.


Copyright © 2010-2011. All Rights Reserved.