Skip to content

Betamax is a tool for mocking external HTTP resources such as web services and REST APIs in your tests. The project was inspired by the VCR library for Ruby.

License

Notifications You must be signed in to change notification settings

mahileeb/betamax

 
 

Repository files navigation

βetamax Build Status

Betamax is a tool for mocking external HTTP resources such as web services and REST APIs in your tests. The project was inspired by the VCR library for Ruby.

Betamax is written in Groovy but is compatible with tests written using JUnit or Spock for applications written in any JVM language.

Usage

Record

Add a @Rule Recorder property to your test and annotate test methods with @Betamax. The first time the test runs any HTTP traffic is recorded to tape.

Playback

Future test runs replay responses from tape without traffic going to the real target. No more 3rd party downtime or rate limits breaking your tests. You can even run your tests offline! Insert different tapes to stub different responses.

Customize

Tapes are just YAML files so you can edit them with a text editor, commit to source control, share with your team & use on continuous integration.

Full documentation

Full documentation can be found on Betamax's home page.

Project status

The current stable version of Betamax is 1.1.2 which is available from Maven Central.

Add 'co.freeside:betamax:1.1.2' as a test dependency to your Gradle, Ivy, Grails or Maven project (or anything that can use Maven repositories).

Development versions are available from Sonatype.

Betamax's tests run on Travis CI.

Please get in touch if you have any feedback. You can raise defects and feature requests via GitHub issues.

Notes on running tests from inside IntelliJ IDEA

Go to Settings -> Compiler and ensure that *.keystore appears in the Resource patterns otherwise IDEA will not make the SSL keystore available on the classpath when tests run.

About

Betamax is a tool for mocking external HTTP resources such as web services and REST APIs in your tests. The project was inspired by the VCR library for Ruby.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Groovy 80.5%
  • JavaScript 10.3%
  • Shell 8.0%
  • Other 1.2%