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.
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"
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.
-
Quick Start - Usage Examples
-
Traditional mocking - Star Trek Example
-
Setting expectations on real classes - Order Example
-
More examples on James Mead’s Blog
Copyright Revieworld Ltd. 2006
You may use, copy and redistribute this library under the same terms as Ruby itself or under the MIT license.