Project

bourne

0.1
Repository is archived
No commit activity in last 3 years
No release in over 3 years
Extends mocha to allow detailed tracking and querying of stub and mock invocations. Allows test spies using the have_received rspec matcher and assert_received for Test::Unit. Extracted from the jferris-mocha fork.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0

Runtime

~> 1.1
 Project Readme

Deprecated

Given the introduction of test spies in rspec-mocks, Bourne is unnecessary in new versions of RSpec (> 2.14).

Bourne Build Status

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

You also want to configure RSpec to use mocha for mocking:

RSpec.configure do |config|
  config.mock_with :mocha
end

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.

Install

gem install bourne

More Information

Credits

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.

thoughtbot

Thank you to all the contributors!

The names and logos for thoughtbot are trademarks of thoughtbot, inc.

License

Bourne is Copyright © 2010-2013 Joe Ferris and thoughtbot. It is free software, and may be redistributed under the terms specified in the LICENSE file.