Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Mocha is a mocking and stubbing library for Ruby (canonical repo is now at http://github.com/freerange/mocha)

README.rdoc

Mocha

Mocha is a library for mocking and stubbing using a syntax like that of JMock.

It can be used with many testing frameworks e.g. Test::Unit, RSpec, test/spec, expectations, Dust, MiniTest and even JtestR.

Mocha provides a unified, simple and readable syntax for both traditional mocking and partial mocking.

Mocha was harvested from projects at Reevoo by me (James) and my (then) colleagues Ben, Chris and Paul.

Installation

Install the latest version of the gem with the following command…

$ gem install mocha

Note that if you are intending to use Mocha with Test::Unit or MiniTest, you should only load Mocha after loading the relevant test library…

require "test/unit"
require "mocha"

If you're using Bundler, ensure the correct load order by not auto-requiring Mocha in the Gemfile and then later load it once you know the test library has been loaded…

# Gemfile
gem "mocha", :require => false

# Elsewhere after Bundler has loaded gems
require "test/unit"
require "mocha"

Note that versions 0.10.2 & 0.10.3 included a bug. Please do not use these versions.

Or install the Rails plugin…

$ script/plugin install git://github.com/floehopper/mocha.git

Note that versions 0.9.6 & 0.9.7 of the Rails plugin were broken. As of version 0.9.8, you need to explicitly load Mocha after the test framework e.g. by adding “require 'mocha'” at the bottom of test/test_helper.rb.

Examples

  • Quick Start - {file:misc.rb Usage Examples}

  • Traditional mocking - {file:mocha.rb Star Trek Example}

  • Setting expectations on real classes - {file:stubba.rb Order Example}

  • More examples on James Mead’s Blog

  • Mailing List Archives

Links

License

Copyright Revieworld Ltd. 2006

You may use, copy and redistribute this library under the same terms as Ruby itself or under the {file:MIT-LICENSE.rdoc MIT license}.

Something went wrong with that request. Please try again.