Class: RSpec::Mocks::Matchers::Receive

Inherits:
Object
  • Object
show all
Defined in:
lib/rspec/mocks/matchers/receive.rb

Defined Under Namespace

Classes: Customization

Instance Method Summary (collapse)

Constructor Details

- (Receive) initialize(message, block)

A new instance of Receive



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/rspec/mocks/matchers/receive.rb', line 5

def initialize(message, block)
  @message                 = message
  @block                   = block
  @recorded_customizations = []

  # MRI, JRuby and RBX report the caller inconsistently; MRI
  # reports an extra "in `new'" line in the backtrace that the
  # others do not include. The safest way to find the right
  # line is to search for the first line BEFORE rspec/mocks/syntax.rb.
  @backtrace_line          = caller.find do |line|
    !line.split(':').first.end_with?('rspec/mocks/syntax.rb')
  end
end

Instance Method Details

- (Object) setup_allowance(subject)



33
34
35
# File 'lib/rspec/mocks/matchers/receive.rb', line 33

def setup_allowance(subject, &block)
  setup_mock_proxy_method_substitute(subject, :add_stub, block)
end

- (Object) setup_any_instance_allowance(subject)



45
46
47
# File 'lib/rspec/mocks/matchers/receive.rb', line 45

def setup_any_instance_allowance(subject, &block)
  setup_any_instance_method_substitute(subject, :stub, block)
end

- (Object) setup_any_instance_expectation(subject)



37
38
39
# File 'lib/rspec/mocks/matchers/receive.rb', line 37

def setup_any_instance_expectation(subject, &block)
  setup_any_instance_method_substitute(subject, :should_receive, block)
end

- (Object) setup_any_instance_negative_expectation(subject)



41
42
43
# File 'lib/rspec/mocks/matchers/receive.rb', line 41

def setup_any_instance_negative_expectation(subject, &block)
  setup_any_instance_method_substitute(subject, :should_not_receive, block)
end

- (Object) setup_expectation(subject) Also known as: matches?



19
20
21
# File 'lib/rspec/mocks/matchers/receive.rb', line 19

def setup_expectation(subject, &block)
  setup_mock_proxy_method_substitute(subject, :add_message_expectation, block)
end

- (Object) setup_negative_expectation(subject) Also known as: does_not_match?



24
25
26
27
28
29
30
# File 'lib/rspec/mocks/matchers/receive.rb', line 24

def setup_negative_expectation(subject, &block)
  # ensure `never` goes first for cases like `never.and_return(5)`,
  # where `and_return` is meant to raise an error
  @recorded_customizations.unshift Customization.new(:never, [], nil)

  setup_expectation(subject, &block)
end