CLI test suite for boilerplating Dredd hooks handler in new language
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
features
.gherkin-lintrc
.gitignore
.travis.example.yml
.travis.yml
Gemfile
Gemfile.lock
LICENSE
README.md
package.json

README.md

Cross-Language Test Suite for Dredd Hooks

Build Status

Language-agnostic BDD test suite for boilerplating implementation of Dredd hooks handler for a new language. It tests the public interface of the hooks handler and ensures it will work as Dredd expects. It's written in Gherkin and ran by Aruba.

Usage

Install the features dependencies

npm install -g dredd
git clone https://github.com/apiaryio/dredd-hooks-template.git
cd dredd-hooks-template
bundle install

Enable the features for your language

  1. Open the feature files in ./features/*.feature
  2. In all of them, replace:
  • {{mylanguage}} by the hooks handler command for you language
  • {{myextension}} by the extension for your language
  1. Implement the code examples in your language
  2. Run the test suite: bundle exec cucumber

Add the features to your project

If the test suite did run as expected, you can now add the features to your project. To do so, copy to your project:

  1. the entire features/ directory
  2. the Gemfile, Gemfile.lock and .ruby-version

Your should now be able to install the features dependencies and run the test suite in your project.

Finally, make bundle exec cucumber part of your test suite and CI (see .travis.example.yml if you are using Travis CI).

Development

The feature files syntax is validated automatically. To perform the validation locally:

# Install the dependencies
npm install

# Run the linter
npm test

Examples

The Dredd Hooks Ruby gem and the Dredd Hooks Python package can be used as references to use this cross-language test suite.