Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Rspec-2 doubles (mocks and stubs)

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
autotest
features
lib
spec
.autotest
.document
.gitignore
Gemfile
Guardfile
History.md
License.txt
README.md
Rakefile
Upgrade.markdown
cucumber.yml
rspec-mocks.gemspec
specs.watchr

README.md

RSpec Mocks

rspec-mocks provides a test-double framework for rspec including support for method stubs, fakes, and message expectations.

Documentation

The Cucumber features are the most comprehensive and up-to-date docs for end-users.

The RDoc provides additional information for contributors and/or extenders.

All of the documentation is open source and a work in progress. If you find it lacking or confusing, you can help improve it by submitting requests and patches to the rspec-mocks issue tracker.

Install

gem install rspec       # for rspec-core, rspec-expectations, rspec-mocks
gem install rspec-mocks # for rspec-mocks only

Method Stubs

describe "consumer" do
  it "gets stuff from a service" do
    service = double('service')
    service.stub(:find) { 'value' }
    consumer = Consumer.new(service)
    consumer.consume
    consumer.aquired_stuff.should eq(['value'])
  end
end

Message Expectations

describe "some action" do
  context "when bad stuff happens" do
    it "logs the error" do
      logger = double('logger')
      doer = Doer.new(logger)
      logger.should_receive(:log).with('oops')
      doer.do_something_with(:bad_data)
    end
  end
end

Contribute

See http://github.com/rspec/rspec-dev

Also see

Something went wrong with that request. Please try again.