Module: Spec::Mocks::ExampleMethods

Includes:
ArgumentMatchers
Defined in:
lib/spec/mocks/example_methods.rb

Instance Method Summary collapse

Methods included from ArgumentMatchers

#any_args, #anything, #boolean, #duck_type, #hash_including, #hash_not_including, #instance_of, #kind_of, #no_args

Instance Method Details

#__declare_double(declared_as, *args) ⇒ Object

:nodoc:



37
38
39
40
41
# File 'lib/spec/mocks/example_methods.rb', line 37

def __declare_double(declared_as, *args) # :nodoc:
  args << {} unless Hash === args.last
  args.last[:__declared_as] = declared_as
  Spec::Mocks::Mock.new(*args)
end

#allow_message_expectations_on_nilObject

Disables warning messages about expectations being set on nil.

By default warning messages are issued when expectations are set on nil. This is to prevent false-positives and to catch potential bugs early on.



63
64
65
# File 'lib/spec/mocks/example_methods.rb', line 63

def allow_message_expectations_on_nil
  Proxy.allow_message_expectations_on_nil
end

#double(*args) ⇒ Object

Shortcut for creating an instance of Spec::Mocks::Mock.

name is used for failure reporting, so you should use the role that the double is playing in the example.

stubs_and_options lets you assign options and stub values at the same time. The only option available is :null_object. Anything else is treated as a stub value.

Examples

thing = double("thing", :a => "A")
thing.a == "A" => true

person = double("thing", :name => "Joe", :email => "[email protected]")
person.name => "Joe"
person.email => "[email protected]"


23
24
25
# File 'lib/spec/mocks/example_methods.rb', line 23

def double(*args)
  __declare_double('Double', *args)
end

#mock(*args) ⇒ Object

Alias for double



28
29
30
# File 'lib/spec/mocks/example_methods.rb', line 28

def mock(*args)
  __declare_double('Mock', *args)
end

#stub(*args) ⇒ Object

Alias for double



33
34
35
# File 'lib/spec/mocks/example_methods.rb', line 33

def stub(*args)
  __declare_double('Stub', *args)
end

#stub_everything(name = 'stub') ⇒ Object

DEPRECATED - use double(‘name’).as_null_object instead

Shortcut for creating a mock object that will return itself in response to any message it receives that it hasn’t been explicitly instructed to respond to.



48
49
50
51
52
53
54
55
56
57
# File 'lib/spec/mocks/example_methods.rb', line 48

def stub_everything(name = 'stub')
  Spec.warn(<<-WARNING)

DEPRECATION: stub_everything('#{name}') is deprecated and will be removed
from a future version of rspec. Please use double('#{name}').as_null_object
(or stub('#{name}').as_null_object or mock('#{name}').as_null_object instead.

WARNING
  mock(name, :null_object => true)
end