rspec-mocks 3.0.4 → 3.12.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- checksums.yaml.gz.sig +0 -0
- data/.document +1 -1
- data/.yardopts +1 -1
- data/Changelog.md +512 -2
- data/{License.txt → LICENSE.md} +5 -4
- data/README.md +113 -30
- data/lib/rspec/mocks/any_instance/chain.rb +5 -3
- data/lib/rspec/mocks/any_instance/error_generator.rb +31 -0
- data/lib/rspec/mocks/any_instance/expect_chain_chain.rb +1 -5
- data/lib/rspec/mocks/any_instance/expectation_chain.rb +9 -8
- data/lib/rspec/mocks/any_instance/message_chains.rb +7 -8
- data/lib/rspec/mocks/any_instance/proxy.rb +14 -5
- data/lib/rspec/mocks/any_instance/recorder.rb +61 -31
- data/lib/rspec/mocks/any_instance/stub_chain.rb +15 -11
- data/lib/rspec/mocks/any_instance/stub_chain_chain.rb +1 -5
- data/lib/rspec/mocks/any_instance.rb +1 -0
- data/lib/rspec/mocks/argument_list_matcher.rb +55 -10
- data/lib/rspec/mocks/argument_matchers.rb +88 -30
- data/lib/rspec/mocks/configuration.rb +61 -13
- data/lib/rspec/mocks/error_generator.rb +250 -107
- data/lib/rspec/mocks/example_methods.rb +151 -28
- data/lib/rspec/mocks/instance_method_stasher.rb +17 -6
- data/lib/rspec/mocks/matchers/have_received.rb +50 -20
- data/lib/rspec/mocks/matchers/receive.rb +39 -11
- data/lib/rspec/mocks/matchers/receive_message_chain.rb +22 -7
- data/lib/rspec/mocks/matchers/receive_messages.rb +12 -7
- data/lib/rspec/mocks/message_chain.rb +3 -7
- data/lib/rspec/mocks/message_expectation.rb +466 -307
- data/lib/rspec/mocks/method_double.rb +88 -29
- data/lib/rspec/mocks/method_reference.rb +85 -25
- data/lib/rspec/mocks/minitest_integration.rb +68 -0
- data/lib/rspec/mocks/mutate_const.rb +50 -109
- data/lib/rspec/mocks/object_reference.rb +89 -32
- data/lib/rspec/mocks/order_group.rb +4 -5
- data/lib/rspec/mocks/proxy.rb +156 -60
- data/lib/rspec/mocks/space.rb +52 -35
- data/lib/rspec/mocks/standalone.rb +1 -1
- data/lib/rspec/mocks/syntax.rb +26 -30
- data/lib/rspec/mocks/targets.rb +55 -28
- data/lib/rspec/mocks/test_double.rb +43 -7
- data/lib/rspec/mocks/verifying_double.rb +27 -33
- data/lib/rspec/mocks/{verifying_message_expecation.rb → verifying_message_expectation.rb} +11 -16
- data/lib/rspec/mocks/verifying_proxy.rb +77 -26
- data/lib/rspec/mocks/version.rb +1 -1
- data/lib/rspec/mocks.rb +8 -1
- data.tar.gz.sig +0 -0
- metadata +80 -43
- metadata.gz.sig +0 -0
@@ -3,41 +3,46 @@ module RSpec
|
|
3
3
|
module Matchers
|
4
4
|
# @private
|
5
5
|
class ReceiveMessages
|
6
|
+
include Matcher
|
6
7
|
|
7
8
|
def initialize(message_return_value_hash)
|
8
9
|
@message_return_value_hash = message_return_value_hash
|
9
10
|
@backtrace_line = CallerFilter.first_non_rspec_line
|
10
11
|
end
|
11
12
|
|
12
|
-
def
|
13
|
+
def matcher_name
|
13
14
|
"receive_messages"
|
14
15
|
end
|
15
16
|
|
17
|
+
def description
|
18
|
+
"receive messages: #{@message_return_value_hash.inspect}"
|
19
|
+
end
|
20
|
+
|
16
21
|
def setup_expectation(subject)
|
17
22
|
warn_about_block if block_given?
|
18
|
-
each_message_on(
|
23
|
+
each_message_on(proxy_on(subject)) do |host, message, return_value|
|
19
24
|
host.add_simple_expectation(message, return_value, @backtrace_line)
|
20
25
|
end
|
21
26
|
end
|
22
27
|
alias matches? setup_expectation
|
23
28
|
|
24
|
-
def setup_negative_expectation(
|
29
|
+
def setup_negative_expectation(_subject)
|
25
30
|
raise NegationUnsupportedError,
|
26
|
-
|
27
|
-
|
31
|
+
"`expect(...).to_not receive_messages` is not supported since it " \
|
32
|
+
"doesn't really make sense. What would it even mean?"
|
28
33
|
end
|
29
34
|
alias does_not_match? setup_negative_expectation
|
30
35
|
|
31
36
|
def setup_allowance(subject)
|
32
37
|
warn_about_block if block_given?
|
33
|
-
each_message_on(
|
38
|
+
each_message_on(proxy_on(subject)) do |host, message, return_value|
|
34
39
|
host.add_simple_stub(message, return_value)
|
35
40
|
end
|
36
41
|
end
|
37
42
|
|
38
43
|
def setup_any_instance_expectation(subject)
|
39
44
|
warn_about_block if block_given?
|
40
|
-
each_message_on(
|
45
|
+
each_message_on(any_instance_of(subject)) do |host, message, return_value|
|
41
46
|
host.should_receive(message).and_return(return_value)
|
42
47
|
end
|
43
48
|
end
|
@@ -12,10 +12,10 @@ module RSpec
|
|
12
12
|
# @api private
|
13
13
|
def setup_chain
|
14
14
|
if chain.length > 1
|
15
|
-
if matching_stub = find_matching_stub
|
15
|
+
if (matching_stub = find_matching_stub)
|
16
16
|
chain.shift
|
17
17
|
chain_on(matching_stub.invoke(nil), *chain, &@block)
|
18
|
-
elsif matching_expectation = find_matching_expectation
|
18
|
+
elsif (matching_expectation = find_matching_expectation)
|
19
19
|
chain.shift
|
20
20
|
chain_on(matching_expectation.invoke_without_incrementing_received_count(nil), *chain, &@block)
|
21
21
|
else
|
@@ -30,10 +30,6 @@ module RSpec
|
|
30
30
|
|
31
31
|
private
|
32
32
|
|
33
|
-
def expectation(object, message, &return_block)
|
34
|
-
raise NotImplementedError.new
|
35
|
-
end
|
36
|
-
|
37
33
|
def chain_on(object, *chain, &block)
|
38
34
|
initialize(object, *chain, &block)
|
39
35
|
setup_chain
|
@@ -42,7 +38,7 @@ module RSpec
|
|
42
38
|
def format_chain(*chain, &blk)
|
43
39
|
if Hash === chain.last
|
44
40
|
hash = chain.pop
|
45
|
-
hash.each do |k,v|
|
41
|
+
hash.each do |k, v|
|
46
42
|
chain << k
|
47
43
|
blk = Proc.new { v }
|
48
44
|
end
|