Module RSpec::Mocks::Methods
In: lib/rspec/mocks/methods.rb

Methods that are added to every object.

Methods

Public Instance methods

Tells the object to respond to all messages. If specific stub values are declared, they‘ll work as expected. If not, the receiver is returned.

Returns true if this object has received `as_null_object`

Sets and expectation that this object should not receive a message during this example.

Sets and expectation that this object should receive a message before the end of the example.

@example

    logger = double('logger')
    thing_that_logs = ThingThatLogs.new(logger)
    logger.should_receive(:log)
    thing_that_logs.do_something_that_logs_a_message

Tells the object to respond to the message with the specified value.

@example

    counter.stub(:count).and_return(37)
    counter.stub(:count => 37)
    counter.stub(:count) { 37 }
stub!(message_or_hash, opts={}, &block)

Alias for stub

@overload stub_chain(method1, method2) @overload stub_chain("method1.method2") @overload stub_chain(method1, method_to_value_hash)

Stubs a chain of methods.

## Warning:

Chains can be arbitrarily long, which makes it quite painless to violate the Law of Demeter in violent ways, so you should consider any use of `stub_chain` a code smell. Even though not all code smells indicate real problems (think fluent interfaces), `stub_chain` still results in brittle examples. For example, if you write `foo.stub_chain(:bar, :baz => 37)` in a spec and then the implementation calls `foo.baz.bar`, the stub will not work.

@example

    double.stub_chain("foo.bar") { :baz }
    double.stub_chain(:foo, :bar => :baz)
    double.stub_chain(:foo, :bar) { :baz }

    # Given any of ^^ these three forms ^^:
    double.foo.bar # => :baz

    # Common use in Rails/ActiveRecord:
    Article.stub_chain("recent.published") { [Article.new] }

Removes a stub. On a double, the object will no longer respond to `message`. On a real object, the original method (if it exists) is restored.

This is rarely used, but can be useful when a stub is set up during a shared `before` hook for the common case, but you want to replace it for a special case.

unstub!(message)

Alias for unstub

[Validate]