Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: 39354a10d8
Fetching contributors…

Cannot retrieve contributors at this time

60 lines (39 sloc) 1.864 kb
= Bourne
Bourne extends mocha to allow detailed tracking and querying of stub and mock
invocations. It allows test spies using the have_received rspec matcher and
assert_received for Test::Unit. Bourne was extracted from jferris-mocha, a fork
of mocha that adds test spies.
== Test Spies
Test spies are a form of test double that preserves the normal four-phase unit
test order and allows separation of stubbing and verification.
Using a test spy is like using a mocked expectation except that there are two steps:
1. Stub out a method for which you want to verify invocations
2. Use an assertion or matcher to verify that the stub was invoked correctly
== Examples
# rspec
mock.should have_received(:to_s)
Radio.should have_received(:new).with(1041)
radio.should have_received(:volume).with(11).twice
radio.should have_received(:off).never
# Test::Unit
assert_received(mock, :to_s)
assert_received(Radio, :new) {|expect| expect.with(1041) }
assert_received(radio, :volume) {|expect| expect.with(11).twice }
assert_received(radio, :off) {|expect| expect.never }
See Mocha::API for more information.
== Download
Rubygems:
gem install bourne
Github: http://github.com/thoughtbot/bourne/tree/master
== More Information
* RDoc[http://rdoc.info/projects/thoughtbot/bourne]
* Mocha mailing list[http://groups.google.com/group/mocha-developer?hl=en]
* Issues[http://github.com/thoughtbot/bourne/issues]
* GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS[http://robots.thoughtbot.com]
== Author
Bourne was written by Joe Ferris. Mocha was written by James Mead. Several of
the test examples and helpers used in the Bourne test suite were copied
directly from Mocha.
Thanks to thoughtbot for inspiration, ideas, and funding. Thanks to James for
writing mocha.
Copyright 2010 Joe Ferris and thoughtbot[http://www.thoughtbot.com], inc.
Jump to Line
Something went wrong with that request. Please try again.