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:

[View source]

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.

[View source]

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 => "joe@domain.com")
person.name => "Joe"
person.email => "joe@domain.com"
[View source]

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

[View source]

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

[View source]

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.

[View source]

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