rspec-mocks 3.0.4 → 3.12.6
Sign up to get free protection for your applications and to get access to all the features.
- 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
|