stripe-mock is a mock HTTP server that responds like the real Stripe API. It can be used instead of Stripe's test mode to make test suites integrating with Stripe faster and less brittle. It's powered by the Stripe OpenAPI specification, which is generated from within Stripe's API.
stripe-mock is able to generate an approximately correct API response for any endpoint, but the logic for doing so is still quite naive. It supports the following features:
amount=123, a charge will be returned with
POSTcalls won't be stored so that the same information is available later.
The next important feature that we're aiming to provide is statefulness. The idea would be that resources created during a session would be stored for that session's duration and could be subsequently retrieved, updated, and deleted. This would allow more comprehensive integration tests to run successfully against stripe-mock.
We'll continue to aim to improve the quality of stripe-mock's responses, but it will never be on perfect parity with the live API. We think the ideal test suite for an integration would involve running most of the suite against stripe-mock, and then to have a few smoke tests run critical flows against the more accurate (but also slower) Stripe API in test mode.
If you have Go installed, you can install the basic binary with:
go get -u github.com/stripe/stripe-mock
With no arguments, stripe-mock will listen with HTTP on its default port of
12111 and HTTPS on
Ports can be specified explicitly with:
stripe-mock -http-port 12111 -https-port 12112
-https-port out to activate stripe-mock on only
Have stripe-mock select a port automatically by passing
stripe-mock -http-port 0
It can also listen via Unix socket:
stripe-mock -http-unix /tmp/stripe-mock.sock -https-unix /tmp/stripe-mock-secure.sock
Get it from Homebrew or download it from the releases page:
brew install stripe/stripe-mock/stripe-mock # start a stripe-mock service at login brew services start stripe-mock # upgrade if you already have it brew upgrade stripe-mock # restart the service after upgrading brew services restart stripe-mock
The Homebrew service listens on port
12111 for HTTP and
12112 for HTTPS and
docker run --rm -it -p 12111-12112:12111-12112 stripe/stripe-mock:latest
The default Docker
ENTRYPOINT listens on port
12111 for HTTP and
for HTTPS and HTTP/2.
After you've started stripe-mock, you can try a sample request against it:
curl -i http://localhost:12111/v1/charges -H "Authorization: Bearer sk_test_123"
Run the test suite:
go test ./...
Update the OpenAPI spec by running
make update-openapi-spec in the root of the repo.
Dependencies are managed using go modules and require Go 1.11+ with
Releases are automatically published by Travis CI using goreleaser when a new tag is pushed:
git pull origin --tags git tag v0.1.1 git push origin --tags