Matches pact for Providers. See Pacts for more information on Pact.
Requirements
- You will need Ruby 2+. You can install this via ruby-install, rvm or chruby.
- bundler
- node (tested on version 4.2.1)
- npm
Install bundler with:
gem install bundler
bundle --version
Should print something like:
Bundler version 1.11.2
Any project using Pact will then on preinstall run 'bundle install' to install the ruby dependencies.
See test repo
provider_states_for('Animal Service', 'Zoo App', './pacts/zoo_app-animal_service.json', 'http://localhost:5000', (done) => {
providerState('there is an alligator named Mary', (done) => {
setUp( (done) => {
switchMary(true, done)
})
it( () => {})
tearDown( (done) => {
done()
})
})
)}
Pact-js-provider uses mocha under the hood. As a result currently to run the test you need an it method. The provider_states_for method needs the following parameters:
- provider name
- consumer name
- pact file
- base url
The providerState requires the name of the providerState to be tested. Currently this will just output the content from the ruby implementation. There is no error code returned on failure.
Pacts - ruby reference implementation
[Pacts js consumer] (https://github.com/DiUS/pact-consumer-js-dsl)
Simplifying microservices testing with pacts - Ron Holshausen (one of the original pact authors)
Integrated tests are a scam - J.B. Rainsberger
Consumer Driven Contracts - Ian Robinson
Integration Contract Tests - Martin Fowler
See ROADMAP.md.
See CONTRIBUTING.md.