Top Level Namespace

Defined Under Namespace

Modules: RSpec Classes: BasicObject, Class

Instance Method Summary collapse

Methods included from RSpec::Mocks::ExampleMethods

allow, allow_any_instance_of, allow_message_expectations_on_nil, class_double, class_spy, double, expect, expect_any_instance_of, have_received, hide_const, instance_double, instance_spy, object_double, object_spy, receive, receive_message_chain, receive_messages, spy, stub_const, without_partial_double_verification

Methods included from RSpec::Mocks::ArgumentMatchers

#any_args, #anything, #array_including, #boolean, #duck_type, #hash_excluding, #hash_including, #instance_of, #kind_of, #no_args

Instance Method Details

#as_null_objectObject

Note:

This is only available when you have enabled the should syntax.

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.



# File 'lib/rspec/mocks/syntax.rb', line 283

#null_object?Object

Note:

This is only available when you have enabled the should syntax.

Returns true if this object has received as_null_object



# File 'lib/rspec/mocks/syntax.rb', line 290

#should_not_receiveObject

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



# File 'lib/rspec/mocks/syntax.rb', line 225

#should_receiveObject

Note:

This is only available when you have enabled the should syntax.

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

Examples:

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

See Also:



# File 'lib/rspec/mocks/syntax.rb', line 212

#stubObject

Note:

This is only available when you have enabled the should syntax.

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

Examples:

counter.stub(:count).and_return(37)
counter.stub(:count => 37)
counter.stub(:count) { 37 }

See Also:



# File 'lib/rspec/mocks/syntax.rb', line 230

#stub_chain(method1, method2) ⇒ Object #stub_chain("method1.method2") ⇒ Object #stub_chain(method1, method_to_value_hash) ⇒ Object

Note:

This is only available when you have enabled the should syntax.

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.

Examples:

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] }

See Also:



# File 'lib/rspec/mocks/syntax.rb', line 252

#unstubObject

Note:

This is only available when you have enabled the should syntax.

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.



# File 'lib/rspec/mocks/syntax.rb', line 241