/mountebank

Over the wire test doubles

Primary LanguageJavaScriptMIT LicenseMIT

mountebank

mountebank is the first open source tool to provide cross-platform, multi-protocol test doubles over the wire. Just point your application to mountebank instead of the real dependency, and test like you would with traditional stubs and mocks.

At the moment, the following protocols are supported:

  • http
  • https
  • tcp (text and binary)
  • smtp

mountebank supports mock verification, stubbing with advanced predicates, JavaScript injection, and record-playback through proxying.

how it works

See getting started guide for more information.

Install and Run

NPM version

Install:

npm install -g mountebank --production

The npm install requires node 0.10. Billions of other install options are also available with no platform dependencies.

Run:

mb

Learn More

After installing and running, view the docs in your browser at http://localhost:2525, or visit the public site.

Goals

mountebank has the following goals:

  • Trivial to get started
    • mountebank is easy to install, without any platform dependencies. mountebank aims for fun and comprehensive documentation with lots of examples, and a nice UI that lets you explore the API interactively.
  • A platform, not just a tool
    • mountebank aims to be fully cross-platform, with native language bindings. Servers are extensible through scripting.
  • Powerful
    • mountebank is the only open source stubbing tool that is non-modal and multi-protocol. Commercial "service virtualization" solutions exist, but their licensed platforms make it hard to move the tests closer to development and can even require a specialized IDE. mountebank provides service virtualization free of charge without any platform constraints.

Not all of mountebank's goals are currently implemented, but fear not, for he has a team of top-notch open source developers, and they are legion.

Support

Visit the Google group for any support questions. Don't be shy!

Building

Name Status
Travis CI (Linux) Build Status
AppVeyor (Windows) Build status
Coveralls Coverage Status
Static Analysis Codacy Badge

./build should do the trick on Mac and Linux, assuming you have node 0.10. If not, yell at me. mountebank does not yet work on node 0.12 or io.js (you are more than welcome to help fix that ;>).

build.bat is your friend on Windows. It's not as complete - some tests that verify documentation integrity are excluded because they depend on netcat.

If the npm install fails on Windows, it's probably jsdom. I had to install python 2.7 (not the latest) to get it to work.

Contributing

Contributions are welcome! Some tips for contributing are in the contributing link that spins up when you run mb. I have a liberal policy accepting pull requests - I'd rather you sent them even if you can't figure out how to get the build working, etc. I'm also available via Skype or something similar to help you get started. Feel free to reach me at brandon.byars@gmail.com.