Skip to content

ziprandom/cucumberjs-json-api-mocking

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cucumberjs-json-api-mocking

A collection of Cucumber step definitions to comfortably define API mocks and expectations inline with Gherkin.

Based on chimp and therefore Webdriver. Loads a modified version of xhr-mock into the browser to intercept XMLHttpRequests. The Steps let you define API call expectations and mocked responses for the wepapp.

Usage

    # The XMLHttpRequest and Response Mocks are
    # injected into the browser context. Every
    # call now gets intercepted,logged and answered
    # if a proper response is defined.
    And I start mocking "http://localhost:8000"

    # An API request is triggered via the ui
    When I input "My fancy new Todo" into the Todo Input
    And I press Return

    # Expected API behavior can be defined after the request
    Then a "post" to "/api/todos" should have happened with:
    """
      {
        "title": "My fancy new Todo",
        "completed": false
      }
    """

    # API mocks can also be defined after the request was made
    # a loop waits 5 secs before a timeout is triggered.
    Given the API responds to the "post" on "/api/todos" with "201":
    """
      {
        "id": 5701886678138880,
        "title": "My fancy new Todo",
        "completed": false
      }
    """

    # When we made sure, the app makes the right api calls
    # and provide it with backend feedback we can go on
    # testing the ui.
    Then an active Todo "My fancy new Todo" should be visible

See features/ for more usage examples.

Installation

$ npm install --save-dev cucumberjs-json-api-mocking

To use the steps defined in lib/api_mock_steps.js run the functions in the context of one of your own step definition files like this:

var json_api = require('cucumberjs-json-api-mocking');

module.exports = function() {

  json_api.call(this);

  // your own step definitions here ..

}

Tests

To run the test suite:

# make sure chromium (firefox / phantomjs are untested)
# is installed
$ npm install -g chimp
$ npm install
$ chimp

Credits

About

A collection of Cucumber step definitions to comfortably define API mocks and expectations inline with Gherkin.

Resources

License

Stars

Watchers

Forks

Packages

No packages published