Interface MockMvcRequestSpecification

All Superinterfaces:
MockMvcRequestSender, io.restassured.specification.RequestSenderOptions<MockMvcResponse>
All Known Implementing Classes:
MockMvcRequestSpecificationImpl

public interface MockMvcRequestSpecification extends MockMvcRequestSender
Allows you to specify how the request will look like.
  • Method Details

    • auth

      Specify authentication details that'll be used in the request.
      Returns:
      A MockMvcAuthenticationSpecification.
    • contentType

      MockMvcRequestSpecification contentType(io.restassured.http.ContentType contentType)
      Specify the content type of the request.
      Parameters:
      contentType - The content type of the request
      Returns:
      The request specification
      See Also:
      • ContentType
    • contentType

      MockMvcRequestSpecification contentType(org.springframework.http.MediaType mediaType)
      Specify the content type of the request.
      Parameters:
      mediaType - The content type of the request
      Returns:
      The request specification
      See Also:
      • ContentType
      • MediaType
    • contentType

      MockMvcRequestSpecification contentType(String contentType)
      Specify the content type of the request.
      Parameters:
      contentType - The content type of the request
      Returns:
      The request specification
      See Also:
      • ContentType
    • accept

      MockMvcRequestSpecification accept(io.restassured.http.ContentType contentType)
      Specify the accept header of the request. This just a shortcut for:
       header("Accept", contentType);
       
      Parameters:
      contentType - The content type whose accept header ContentType.getAcceptHeader() will be used as Accept header in the request.
      Returns:
      The request specification
      See Also:
    • accept

      MockMvcRequestSpecification accept(org.springframework.http.MediaType... mediaTypes)
      Specify the accept header of the request. This just a shortcut for:
       header("Accept", contentType);
       
      Parameters:
      mediaTypes - The media type(s) that will be used as Accept header in the request.
      Returns:
      The request specification
      See Also:
    • accept

      MockMvcRequestSpecification accept(String mediaTypes)
      Specify the accept header of the request. This just a shortcut for:
       header("Accept", contentType);
       
      Parameters:
      mediaTypes - The media type(s) that will be used as Accept header in the request.
      Returns:
      The request specification
      See Also:
    • headers

      MockMvcRequestSpecification headers(String firstHeaderName, Object firstHeaderValue, Object... headerNameValuePairs)
      Specify the headers that'll be sent with the request. This is done by specifying the headers in name-value pairs, e.g:
       given().headers("headerName1", "headerValue1", "headerName2", "headerValue2").then().expect().body(equalTo("something")).when().get("/headers");
       

      This will send a GET request to "/headers" with two headers:

      1. headerName1=headerValue1
      2. headerName2=headerValue2
      and expect that the response body is equal to "something".
      Parameters:
      firstHeaderName - The name of the first header
      firstHeaderValue - The value of the first header
      headerNameValuePairs - Additional headers in name-value pairs.
      Returns:
      The request specification
    • headers

      MockMvcRequestSpecification headers(Map<String,?> headers)
      Specify the headers that'll be sent with the request as Map e.g:
       Map<String, String> headers = new HashMap<String, String>();
       parameters.put("headerName1", "headerValue1");
       parameters.put("headerName2", "headerValue2");
       given().headers(headers).then().expect().body(equalTo("something")).when().get("/headers");
       

      This will send a GET request to "/headers" with two headers:

      1. headerName1=headerValue1
      2. headerName2=headerValue2
      and expect that the response body is equal to "something".
      Parameters:
      headers - The Map containing the header names and their values to send with the request.
      Returns:
      The request specification
    • headers

      MockMvcRequestSpecification headers(io.restassured.http.Headers headers)
      Specify the headers that'll be sent with the request as Headers, e.g:
       Header first = new Header("headerName1", "headerValue1");
       Header second = new Header("headerName2", "headerValue2");
       Headers headers = new Header(first, second);
       given().headers(headers).then().expect().body(equalTo("something")).when().get("/headers");
       

      This will send a GET request to "/headers" with two headers:

      1. headerName1=headerValue1
      2. headerName2=headerValue2
      and expect that the response body is equal to "something".
      Parameters:
      headers - The headers to use in the request
      Returns:
      The request specification
    • header

      MockMvcRequestSpecification header(String headerName, Object headerValue, Object... additionalHeaderValues)
      Specify a header that'll be sent with the request e.g:

       given().header("username", "John").and().expect().body(equalTo("something")).when().get("/header");
       
      This will set the header username=John in the GET request to "/header".

      You can also specify several headers like this:

       given().header("username", "John").and().header("zipCode", "12345").and().expect().body(equalTo("something")).when().get("/header");
       

      If you specify additionalHeaderValues then the Header will be a multi-value header. This means that you'll create several headers with the same name but with different values.

      Parameters:
      headerName - The header name
      headerValue - The header value
      additionalHeaderValues - Additional header values. This will actually create two headers with the same name but with different values.
      Returns:
      The request specification
      See Also:
    • header

      MockMvcRequestSpecification header(io.restassured.http.Header header)
      Specify a Header to send with the request.

       Header someHeader = new Header("some_name", "some_value");
       given().header(someHeader).and().expect().body(equalTo("x")).when().get("/header");
       
      This will set the header some_name=some_value in the GET request to "/header".

      Parameters:
      header - The header to add to the request
      Returns:
      The request specification
      See Also:
    • log

      Returns the MockMvcRequestLogSpecification that allows you to log different parts of the MockMvcRequestSpecification. This is mainly useful for debug purposes when writing your tests.
      Returns:
      the request log specification
    • params

      MockMvcRequestSpecification params(String firstParameterName, Object firstParameterValue, Object... parameterNameValuePairs)
      Specify the parameters that'll be sent with the request. This is done by specifying the parameters in name-value pairs, e.g:
       given().params("username", "John", "token", "1234").when().get("/parameters").then().assertThat().body(equalTo("username, token"));
       

      This will send a GET request to "/parameters" with two parameters:

      1. username=John
      2. token=1234
      and expect that the response body is equal to "username, token".
      Parameters:
      firstParameterName - The name of the first parameter
      firstParameterValue - The value of the first parameter
      parameterNameValuePairs - Additional parameters in name-value pairs.
      Returns:
      The request specification
    • params

      MockMvcRequestSpecification params(Map<String,?> parametersMap)
      Specify the parameters that'll be sent with the request as Map e.g:
       Map<String, String> parameters = new HashMap<String, String>();
       parameters.put("username", "John");
       parameters.put("token", "1234");
       given().params(parameters).when().get("/cookie").then().assertThat().body(equalTo("username, token")).;
       

      This will send a GET request to "/cookie" with two parameters:

      1. username=John
      2. token=1234
      and expect that the response body is equal to "username, token".
      Parameters:
      parametersMap - The Map containing the parameter names and their values to send with the request.
      Returns:
      The request specification
    • param

      MockMvcRequestSpecification param(String parameterName, Object... parameterValues)
      Specify a parameter that'll be sent with the request e.g:

       given().parameter("username", "John").and().expect().body(equalTo("username")).when().get("/cookie");
       
      This will set the parameter username=John in the GET request to "/cookie".

      You can also specify several parameters like this:

       given().param("username", "John").and().param("password", "1234").when().get("/cookie").then().assertThat().body(equalTo("username")).;
       

      Parameters:
      parameterName - The parameter name
      parameterValues - Zero to many parameter values for this parameter name
      Returns:
      The request specification
      See Also:
    • param

      MockMvcRequestSpecification param(String parameterName, Collection<?> parameterValues)
      Specify a multi-value parameter that'll be sent with the request e.g:

       given().param("cars", asList("Volvo", "Saab"))..;
       
      This will set the parameter cars=Volvo and cars=Saab.

      Parameters:
      parameterName - The parameter name
      parameterValues - The parameter values
      Returns:
      The request specification
    • queryParams

      MockMvcRequestSpecification queryParams(String firstParameterName, Object firstParameterValue, Object... parameterNameValuePairs)
      Specify the query parameters that'll be sent with the request. Note that this method is the same as params(String, Object, Object...) for all http methods except for POST where params(String, Object, Object...) sets the form parameters and this method sets the query parameters.
      Parameters:
      firstParameterName - The name of the first parameter
      firstParameterValue - The value of the first parameter
      parameterNameValuePairs - The value of the first parameter followed by additional parameters in name-value pairs.
      Returns:
      The request specification
    • queryParams

      MockMvcRequestSpecification queryParams(Map<String,?> parametersMap)
      Specify the query parameters that'll be sent with the request. Note that this method is the same as params(Map) for all http methods except for POST where params(Map) sets the form parameters and this method sets the query parameters.
      Parameters:
      parametersMap - The Map containing the parameter names and their values to send with the request.
      Returns:
      The request specification
    • queryParam

      MockMvcRequestSpecification queryParam(String parameterName, Object... parameterValues)
      Specify a query parameter that'll be sent with the request. Note that this method is the same as param(String, Object...) for all http methods except for POST where param(String, Object...) adds a form parameter and this method sets a query parameter.
      Parameters:
      parameterName - The parameter name
      parameterValues - Zero to many parameter values, i.e. you can specify multiple values for the same parameter
      Returns:
      The request specification
      See Also:
    • queryParam

      MockMvcRequestSpecification queryParam(String parameterName, Collection<?> parameterValues)
      Specify a multi-value query parameter that'll be sent with the request e.g:

       given().queryParam("cars", asList("Volvo", "Saab"))..;
       
      This will set the parameter cars=Volvo and cars=Saab.

      Note that this method is the same as param(String, java.util.Collection) for all http methods except for POST where param(String, java.util.Collection) adds a form parameter and this method sets a query parameter.

      Parameters:
      parameterName - The parameter name
      parameterValues - The parameter values
      Returns:
      The request specification
    • pathParams

      MockMvcRequestSpecification pathParams(String firstParameterName, Object firstParameterValue, Object... parameterNameValuePairs)
      Specify the path parameters that'll be sent with the request.
      Parameters:
      firstParameterName - The name of the first parameter
      firstParameterValue - The value of the first parameter
      parameterNameValuePairs - The value of the first parameter followed by additional parameters in name-value pairs.
      Returns:
      The request specification
    • pathParams

      MockMvcRequestSpecification pathParams(Map<String,Object> parametersMap)
      Specify the path parameters that'll be sent with the request.
      Parameters:
      parametersMap - The Map containing the parameter names and their values to send with the request.
      Returns:
      The request specification
    • pathParam

      MockMvcRequestSpecification pathParam(String parameterName, Object parameterValue)
      Specify a path parameter. Path parameters are used to improve readability of the request path. E.g. instead of writing:
       when().
              get("/item/"+myItem.getItemNumber()+"/buy/"+2).
       then().
              statusCode(200);
       
      you can write:
       given().
               pathParam("itemNumber", myItem.getItemNumber()).
               pathParam("amount", 2).
       when().
              get("/item/{itemNumber}/buy/{amount}").
       then().
                statusCode(200);
       

      which improves readability and allows the path to be reusable in many tests. Another alternative is to use:

       when().get("/item/{itemNumber}/buy/{amount}", myItem.getItemNumber(), 2).then().statusCode(200).;
       
      Parameters:
      parameterName - The parameter name
      parameterValue - The parameter value
      Returns:
      The request specification
    • formParams

      MockMvcRequestSpecification formParams(String firstParameterName, Object firstParameterValue, Object... parameterNameValuePairs)
      Specify the form parameters that'll be sent with the request. Note that this method is the same as params(String, Object, Object...) for all http methods except for POST where params(String, Object, Object...) sets the form parameters and this method sets the form parameters.
      Parameters:
      firstParameterName - The name of the first parameter
      firstParameterValue - The value of the first parameter
      parameterNameValuePairs - The value of the first parameter followed by additional parameters in name-value pairs.
      Returns:
      The request specification
    • formParams

      MockMvcRequestSpecification formParams(Map<String,?> parametersMap)
      Specify the form parameters that'll be sent with the request. Note that this method is the same as params(Map) for all http methods except for POST where params(Map) sets the form parameters and this method sets the form parameters.
      Parameters:
      parametersMap - The Map containing the parameter names and their values to send with the request.
      Returns:
      The request specification
    • formParam

      MockMvcRequestSpecification formParam(String parameterName, Object... parameterValues)
      Specify a form parameter that'll be sent with the request. Note that this method is the same as param(String, Object...) for all http methods except for POST where param(String, Object...) adds a form parameter and this method sets a form parameter.
      Parameters:
      parameterName - The parameter name
      parameterValues - Zero to many parameter values, i.e. you can specify multiple values for the same parameter
      Returns:
      The request specification
      See Also:
    • formParam

      MockMvcRequestSpecification formParam(String parameterName, Collection<?> parameterValues)
      Specify a multi-value form parameter that'll be sent with the request e.g:

       given().formParam("cars", asList("Volvo", "Saab"))..;
       
      This will set the parameter cars=Volvo and cars=Saab.

      Note that this method is the same as param(String, java.util.Collection) for all http methods except for POST where param(String, java.util.Collection) adds a form parameter and this method sets a form parameter.

      Parameters:
      parameterName - The parameter name
      parameterValues - The parameter values
      Returns:
      The request specification
    • attribute

      MockMvcRequestSpecification attribute(String attributeName, Object attributeValue)
      Specify a single-value request attribute
      Parameters:
      attributeName - The attribute name
      attributeValue - The attribute value
      Returns:
      The request specification
    • attributes

      MockMvcRequestSpecification attributes(Map<String,?> attributesMap)
      Specify request attributes as a map
      Parameters:
      attributesMap - The Map containing the request attribute names and their values
      Returns:
      The request specification
    • body

      Specify a String request body (such as e.g. JSON or XML) that'll be sent with the request. This works for the POST and PUT methods only. Trying to do this for the other http methods will cause an exception to be thrown.

      Example of use:

       given().body("{ \"message\" : \"hello world\"}").then().expect().body(equalTo("hello world")).when().post("/json");
       
      This will POST a request containing JSON to "/json" and expect that the response body equals to "hello world".

      Parameters:
      body - The body to send.
      Returns:
      The request specification
    • body

      MockMvcRequestSpecification body(byte[] body)
      Specify a byte array request body that'll be sent with the request. This only works for the POST http method. Trying to do this for the other http methods will cause an exception to be thrown.

      Example of use:

       byte[] someBytes = ..
       given().body(someBytes).then().expect().body(equalTo("hello world")).when().post("/json");
       
      This will POST a request containing someBytes to "/json" and expect that the response body equals to "hello world".

      Parameters:
      body - The body to send.
      Returns:
      The request specification
    • body

      Specify file content that'll be sent with the request. This only works for the POST, PATCH and PUT http method. Trying to do this for the other http methods will cause an exception to be thrown.

      Example of use:

       File myFile = ..
       given().content(myFile).when().post("/json").then().content(equalTo("hello world"));
       
      This will POST a request containing myFile to "/json" and expect that the response content equals to "hello world".

      Parameters:
      body - The content to send.
      Returns:
      The request specification
    • body

      Specify an Object request content that will automatically be serialized to JSON or XML and sent with the request. If the object is a primitive or Number the object will be converted to a String and put in the request body. This works for the POST and PUT methods only. Trying to do this for the other http methods will cause an exception to be thrown.

      Example of use:

       Message message = new Message();
       message.setMessage("My beautiful message");
      
       given().
               contentType("application/json").
               body(message).
       expect().
               content(equalTo("Response to a beautiful message")).
       when().
               post("/beautiful-message");
       

      Since the content-type is "application/json" then REST Assured will automatically try to serialize the object using Jackson or Gson if they are available in the classpath. If any of these frameworks are not in the classpath then an exception is thrown.
      If the content-type is "application/xml" then REST Assured will automatically try to serialize the object using JAXB if it's available in the classpath. Otherwise an exception will be thrown.
      If no request content-type is specified then REST Assured determine the parser in the following order:
      1. Jackson
      2. Gson
      3. JAXB
      Parameters:
      object - The object to serialize and send with the request
      Returns:
      The request specification
    • body

      MockMvcRequestSpecification body(Object object, io.restassured.mapper.ObjectMapper mapper)
      Specify an Object request content that will automatically be serialized to JSON or XML and sent with the request using a specific object mapper. This works for the POST, PATCH and PUT methods only. Trying to do this for the other http methods will cause an exception to be thrown.

      Example of use:

       Message message = new Message();
       message.setMessage("My beautiful message");
      
       given().
               body(message, new MyObjectMapper()).
       expect().
               content(equalTo("Response to a beautiful message")).
       when().
               post("/beautiful-message");
       
      Parameters:
      object - The object to serialize and send with the request
      mapper - The object mapper
      Returns:
      The request specification
    • body

      MockMvcRequestSpecification body(Object object, io.restassured.mapper.ObjectMapperType mapperType)
      Specify an Object request content that will automatically be serialized to JSON or XML and sent with the request using a specific object mapper type. This works for the POST, PATCH and PUT methods only. Trying to do this for the other http methods will cause an exception to be thrown.

      Example of use:

       Message message = new Message();
       message.setMessage("My beautiful message");
      
       given().
               body(message, ObjectMapper.GSON).
       expect().
               content(equalTo("Response to a beautiful message")).
       when().
               post("/beautiful-message");
       
      Parameters:
      object - The object to serialize and send with the request
      mapperType - The object mapper type to be used
      Returns:
      The request specification
    • cookies

      MockMvcRequestSpecification cookies(String firstCookieName, Object firstCookieValue, Object... cookieNameValuePairs)
      Specify the cookies that'll be sent with the request. This is done by specifying the cookies in name-value pairs, e.g:
       given().cookies("username", "John", "token", "1234").then().expect().body(equalTo("username, token")).when().get("/cookie");
       

      This will send a GET request to "/cookie" with two cookies:

      1. username=John
      2. token=1234
      and expect that the response body is equal to "username, token".
      Parameters:
      firstCookieName - The name of the first cookie
      firstCookieValue - The value of the first cookie
      cookieNameValuePairs - Additional cookies in name-value pairs.
      Returns:
      The request specification
    • cookies

      MockMvcRequestSpecification cookies(Map<String,?> cookies)
      Specify the cookies that'll be sent with the request as Map e.g:
       Map<String, String> cookies = new HashMap<String, String>();
       cookies.put("username", "John");
       cookies.put("token", "1234");
       given().cookies(cookies).then().expect().body(equalTo("username, token")).when().get("/cookie");
       

      This will send a GET request to "/cookie" with two cookies:

      1. username=John
      2. token=1234
      and expect that the response body is equal to "username, token".
      Parameters:
      cookies - The Map containing the cookie names and their values to set in the request.
      Returns:
      The request specification
    • cookies

      MockMvcRequestSpecification cookies(io.restassured.http.Cookies cookies)
      Specify the cookies that'll be sent with the request as Cookies:
       Cookie cookie1 = Cookie.Builder("username", "John").setComment("comment 1").build();
       Cookie cookie2 = Cookie.Builder("token", 1234).setComment("comment 2").build();
       Cookies cookies = new Cookies(cookie1, cookie2);
       given().cookies(cookies).then().expect().body(equalTo("username, token")).when().get("/cookie");
       

      This will send a GET request to "/cookie" with two cookies:

      1. username=John
      2. token=1234
      and expect that the response body is equal to "username, token".
      Parameters:
      cookies - The cookies to set in the request.
      Returns:
      The request specification
    • cookie

      MockMvcRequestSpecification cookie(String cookieName, Object value, Object... additionalValues)
      Specify a cookie that'll be sent with the request e.g:

       given().cookie("username", "John").and().expect().body(equalTo("username")).when().get("/cookie");
       
      This will set the cookie username=John in the GET request to "/cookie".

      You can also specify several cookies like this:

       given().cookie("username", "John").and().cookie("password", "1234").and().expect().body(equalTo("username")).when().get("/cookie");
       

      If you specify additionalValues then the Cookie will be a multi-value cookie. This means that you'll create several cookies with the same name but with different values.

      Parameters:
      cookieName - The cookie cookieName
      value - The cookie value
      additionalValues - Additional cookies values. This will actually create two cookies with the same name but with different values.
      Returns:
      The request specification
      See Also:
    • cookie

      MockMvcRequestSpecification cookie(io.restassured.http.Cookie cookie)
      Specify a Cookie to send with the request.

       Cookie someCookie = new Cookie.Builder("some_cookie", "some_value").setSecured(true).build();
       given().cookie(someCookie).and().expect().body(equalTo("x")).when().get("/cookie");
       
      This will set the cookie someCookie in the GET request to "/cookie".

      Parameters:
      cookie - The cookie to add to the request
      Returns:
      The request specification
      See Also:
    • multiPart

      Specify a file to upload to the server using multi-part form data uploading. It will assume that the control name is file and the mime-type is application/octet-stream. If this is not what you want please use an overloaded method.
      Parameters:
      file - The file to upload
      Returns:
      The request specification
    • multiPart

      MockMvcRequestSpecification multiPart(String controlName, File file)
      Specify a file to upload to the server using multi-part form data uploading with a specific control name. It will use the mime-type application/octet-stream. If this is not what you want please use an overloaded method.
      Parameters:
      file - The file to upload
      controlName - Defines the control name of the body part. In HTML this is the attribute name of the input tag.
      Returns:
      The request specification
    • multiPart

      MockMvcRequestSpecification multiPart(String controlName, File file, String mimeType)
      Specify a file to upload to the server using multi-part form data uploading with a specific control name and mime-type.
      Parameters:
      file - The file to upload
      controlName - Defines the control name of the body part. In HTML this is the attribute name of the input tag.
      mimeType - The mime-type
      Returns:
      The request specification
    • multiPart

      MockMvcRequestSpecification multiPart(String controlName, Object object)
      Specify an object that will be serialized to JSON and uploaded to the server using multi-part form data uploading with a specific control name. It will use mime-type application/json. If this is not what you want please use an overloaded method.
      Parameters:
      controlName - Defines the control name of the body part. In HTML this is the attribute name of the input tag.
      object - The object to serialize to JSON or XML and send to the server
      Returns:
      The request specification
    • multiPart

      MockMvcRequestSpecification multiPart(String controlName, Object object, String mimeType)
      Specify an object that will be serialized and uploaded to the server using multi-part form data uploading with a specific control name.
      Parameters:
      controlName - Defines the control name of the body part. In HTML this is the attribute name of the input tag.
      object - The object to serialize to JSON or XML and send to the server
      mimeType - The mime-type
      Returns:
      The request specification
    • multiPart

      MockMvcRequestSpecification multiPart(String controlName, String filename, Object object, String mimeType)
      Specify an object that will be serialized and uploaded to the server using multi-part form data uploading with a specific control name.
      Parameters:
      controlName - Defines the control name of the body part. In HTML this is the attribute name of the input tag.
      filename - The name of the content you're uploading
      object - The object to serialize to JSON or XML and send to the server
      mimeType - The mime-type
      Returns:
      The request specification
    • multiPart

      MockMvcRequestSpecification multiPart(String controlName, String fileName, byte[] bytes)
      Specify a byte-array to upload to the server using multi-part form data. It will use the mime-type application/octet-stream. If this is not what you want please use an overloaded method.
      Parameters:
      controlName - Defines the control name of the body part. In HTML this is the attribute name of the input tag.
      fileName - The name of the content you're uploading
      bytes - The bytes you want to send
      Returns:
      The request specification
    • multiPart

      MockMvcRequestSpecification multiPart(String controlName, String fileName, byte[] bytes, String mimeType)
      Specify a byte-array to upload to the server using multi-part form data.
      Parameters:
      controlName - Defines the control name of the body part. In HTML this is the attribute name of the input tag.
      fileName - The name of the content you're uploading
      bytes - The bytes you want to send
      mimeType - The mime-type
      Returns:
      The request specification
    • multiPart

      MockMvcRequestSpecification multiPart(String controlName, String fileName, InputStream stream)
      Specify an inputstream to upload to the server using multi-part form data. It will use the mime-type application/octet-stream. If this is not what you want please use an overloaded method.
      Parameters:
      controlName - Defines the control name of the body part. In HTML this is the attribute name of the input tag.
      fileName - The name of the content you're uploading
      stream - The stream you want to send
      Returns:
      The request specification
    • multiPart

      MockMvcRequestSpecification multiPart(String controlName, String fileName, InputStream stream, String mimeType)
      Specify an inputstream to upload to the server using multi-part form data.
      Parameters:
      controlName - Defines the control name of the body part. In HTML this is the attribute name of the input tag.
      fileName - The name of the content you're uploading
      stream - The stream you want to send
      mimeType - The mime-type
      Returns:
      The request specification
    • multiPart

      MockMvcRequestSpecification multiPart(String controlName, String contentBody)
      Specify a string to send to the server using multi-part form data. It will use the mime-type text/plain. If this is not what you want please use an overloaded method.
      Parameters:
      controlName - Defines the control name of the body part. In HTML this is the attribute name of the input tag.
      contentBody - The string to send
      Returns:
      The request specification
    • multiPart

      MockMvcRequestSpecification multiPart(String controlName, String contentBody, String mimeType)
      Specify a string to send to the server using multi-part form data with a specific mime-type.
      Parameters:
      controlName - Defines the control name of the body part. In HTML this is the attribute name of the input tag.
      contentBody - The string to send
      mimeType - The mime-type
      Returns:
      The request specification
    • config

      Define a REST Assured Mock Mvc configuration. E.g.
       given().config(newConfig().logConfig(new LogConfig(captor, true))). ..
       

      newConfig() can be statically imported from RestAssuredMockMvcConfig.

      Parameters:
      config - The configuration to use for this request. If null no config will be used.
      Returns:
      The request specification
    • spec

      MockMvcRequestSpecification spec(MockMvcRequestSpecification requestSpecificationToMerge)
      Add request data from a pre-defined specification. E.g.
       MockMvcRequestSpecification requestSpec = new MockMvcRequestSpecBuilder().addParam("parameter1", "value1").build();
      
       given().
               spec(requestSpec).
               param("parameter2", "value2").
       when().
              get("/something");
       

      This is useful when you want to reuse an entire specification across multiple requests.

      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:

      • Content type
      • Request body
      • Interceptions
      • Log (if defined in requestSpecificationToMerge)
      • Config
      The following settings are merged:
      • Parameters
      • Attributes
      • Cookies
      • Headers

      Parameters:
      requestSpecificationToMerge - The specification to merge with.
      Returns:
      the request specification
    • sessionId

      MockMvcRequestSpecification sessionId(String sessionIdValue)
      Set the session id for this request. It will use the configured session id name from the configuration (by default this is ). You can configure the session id name by using:
           RestAssured.config = newConfig().sessionConfig(new SessionConfig().sessionIdName(<sessionIdName>));
       
      or you can use the sessionId(String, String) method to set it for this request only.
      Parameters:
      sessionIdValue - The session id value.
      Returns:
      The request specification
    • sessionId

      MockMvcRequestSpecification sessionId(String sessionIdName, String sessionIdValue)
      Set the session id name and value for this request. It'll override the default session id name from the configuration (by default this is ). You can configure the default session id name by using:
           RestAssured.config = newConfig().sessionConfig(new SessionConfig().sessionIdName(<sessionIdName>));
       
      and then you can use the sessionId(String) method to set the session id value without specifying the name for each request.
      Parameters:
      sessionIdName - The session id name
      sessionIdValue - The session id value.
      Returns:
      The request specification
    • sessionAttrs

      MockMvcRequestSpecification sessionAttrs(Map<String,Object> sessionAttributes)
      Set session attributes.
      Parameters:
      sessionAttributes - the session attributes
    • sessionAttr

      MockMvcRequestSpecification sessionAttr(String name, Object value)
      Set a session attribute.
      Parameters:
      name - the session attribute name
      value - the session attribute value
    • when

      Call this method when you're done setting up the request specification.
      Returns:
      The MockMvcRequestSender that let's you send the request.
    • standaloneSetup

      MockMvcRequestSpecification standaloneSetup(Object... controllerOrMockMvcConfigurer)
      Build a MockMvc by registering one or more @Controller's instances and configuring Spring MVC infrastructure programmatically. This allows full control over the instantiation and initialization of controllerOrMockMvcConfigurer, and their dependencies, similar to plain unit tests while also making it possible to test one controller at a time.

      When this option is used, the minimum infrastructure required by the DispatcherServlet to serve requests with annotated controllerOrMockMvcConfigurer is automatically created, and can be customized, resulting in configuration that is equivalent to what the MVC Java configuration provides except using builder style methods.

      If the Spring MVC configuration of an application is relatively straight-forward, for example when using the MVC namespace or the MVC Java config, then using this builder might be a good option for testing a majority of controllers. A much smaller number of tests can be used to focus on testing and verifying the actual Spring MVC configuration.

      Parameters:
      controllerOrMockMvcConfigurer - one or more @Controller's to test or a combination of controllers and MockMvcConfigurer
    • standaloneSetup

      MockMvcRequestSpecification standaloneSetup(org.springframework.test.web.servlet.MockMvcBuilder builder)
      Build a MockMvc by using a provided AbstractMockMvcBuilder for configuring Spring MVC infrastructure programmatically. This allows full control over the instantiation and initialization of controllers, and their dependencies, similar to plain unit tests while also making it possible to test one controller at a time.

      If the Spring MVC configuration of an application is relatively straight-forward, for example when using the MVC namespace or the MVC Java config, then using this builder might be a good option for testing a majority of controllers. A much smaller number of tests can be used to focus on testing and verifying the actual Spring MVC configuration.

      Parameters:
      builder - AbstractMockMvcBuilder to build the MVC mock
    • mockMvc

      MockMvcRequestSpecification mockMvc(org.springframework.test.web.servlet.MockMvc mockMvc)
      Provide a MockMvc instance to that REST Assured will use when making this request.
      Parameters:
      mockMvc - The mock mvc instance to use.
      Returns:
      The request specification
    • webAppContextSetup

      MockMvcRequestSpecification webAppContextSetup(org.springframework.web.context.WebApplicationContext context, org.springframework.test.web.servlet.setup.MockMvcConfigurer... mockMvcConfigurers)
      Build a MockMvc using the given, fully initialized, i.e. refreshed, WebApplicationContext and assign it to REST Assured. The DispatcherServlet will use the context to discover Spring MVC infrastructure and application controllers in it. The context must have been configured with a ServletContext.
      Parameters:
      context - The web application context to use
      mockMvcConfigurers - MockMvcConfigurer's to be applied when creating a MockMvc instance of this WebApplicationContext (optional)
    • interceptor

      Intercept the MockHttpServletRequestBuilder created by REST Assured before it's used to perform the request.
      Parameters:
      interceptor - The interceptor
      Returns:
      The request specification
    • and

      Syntactic sugar
      Returns:
      The same MockMvcRequestSpecification instance.
    • postProcessors

      MockMvcRequestSpecification postProcessors(org.springframework.test.web.servlet.request.RequestPostProcessor postProcessor, org.springframework.test.web.servlet.request.RequestPostProcessor... additionalPostProcessors)
      An extension point for further initialization of MockHttpServletRequest in ways not built directly into the MockHttpServletRequestBuilder. Implementation of this interface can have builder-style methods themselves and be made accessible through static factory methods.

      Note that it's recommended to use MockMvcAuthenticationSpecification.with(RequestPostProcessor, RequestPostProcessor...) instead of this method when setting authentication/authorization based RequestPostProcessors. For example:

       given().auth().with(httpBasic("username", "password")). ..
       

      Parameters:
      postProcessor - a post-processor to add
      additionalPostProcessors - Additional post-processors to add
      See Also:
      • AbstractMockHttpServletRequestBuilder.with(RequestPostProcessor)