Cucumber DSL for testing RESTful Web Services
cukes-rest takes simplicity of Cucumber and provides bindings for HTTP specification. As a sugar on top, cukes-rest adds steps for storing and using request/response content from a file system, variable support in .features, context inflation in all steps and a custom plug-in system to allow users to add additional project specific content.
Feature: Gadgets are great!
Background:
Given baseUri is http://my-server.com/rest/
Scenario: Should create another Gadget object
Given request body from file gadgets/requests/newGadget.json
And content type is "application/json"
When the client performs POST request on /gadgets
Then status code is 201
And header Location contains "http://localhost:8080/gadgets/"
When the client performs GET request on {(header.Location)}
Then status code is 200
And response contains property "id" with value other than "2000"
And response contains property "name" with value "Nexus 9"
And response does not contain property "updatedDate"
There are three sections available to be used in a Feature files:
As well as three groups of steps available
More information can be found in the presentation right here!
The dependencies are stored in Maven Central
<dependency>
<groupId>lv.ctco.cukes</groupId>
<artifactId>cukes-rest</artifactId>
<version>${cukes-rest.version}</version>
</dependency>
There are two options to start local server with Sample Application:
server server.yml
from $MODULE_DIR$
Precondition: in order for all tests to pass successfully, please make sure you started fresh instance of Sample Application.