Testing REST Services with REST Assured

Home » Blog » Software » Enterprise Software » Testing REST Services with REST Assured

RESTful service testing can be unwieldy and difficult to get started with. Providing a REST API implies using a variety of technologies and techniques such as HTTP, JSON, authentication, various payload transfer mechanisms and content types.

This is where a tool that abstracts over these technical details and facilitates their application comes in handy. REST Assured is a high-level DSL for testing REST APIs. It draws upon behaviour-driven development (BDD) and hence makes for readable test descriptions.

A typical acceptance test with REST Assured looks like this:

...
        given().
                header("X-Auth-Token", token).
                contentType("application/json").
        when().
                get("/api/v1/users/1").
        then().
                statusCode(200).
                body("id", equalTo(1)).
                body("username", equalTo(username));
...

As you can see REST Assured allows you to define test processes in a BDD given-when-then fashion:

  • Given existing conditions
  • when a certain action is triggered
  • then the outcome should be …

With REST Assured you can handle the various concepts that come with REST and HTTP in a consistent and straightforward manner:

  • headers
  • content types
  • HTTP verbs (GET, POST, PUT, DELETE, PATCH)
  • preflight requests (OPTIONS) for checking if a particular request is supported
  • HTTP status codes
  • various types of parameters: Form parameters, query parameters, path parameters
  • request bodies

REST Assured is a useful tool that allows you to write functional tests and acceptance tests ensuring that the APIs exposed by your server comply with the protocol defined for them.

Leave a Comment

*

I agree