README.md

Path: README.md
Last Update: Sun May 15 16:49:04 +0000 2011

# RSpec Mocks

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

[![build status](travis-ci.org/rspec/rspec-mocks.png)](http://travis-ci.org/rspec/rspec-mocks)

## Documentation

The [Cucumber features](relishapp.com/rspec/rspec-mocks) are the most comprehensive and up-to-date docs for end-users.

The [RDoc](rubydoc.info/gems/rspec-mocks/2.3.0/frames) 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](github.com/rspec/rspec-mocks/issues).

## 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 [github.com/rspec/rspec-dev](http://github.com/rspec/rspec-dev)

## Also see

[Validate]