rspec-mocks 2.13.1 → 2.14.0.rc1

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.
Files changed (99) hide show
  1. data/Changelog.md +45 -4
  2. data/README.md +1 -1
  3. data/features/argument_matchers/README.md +2 -2
  4. data/features/argument_matchers/explicit.feature +2 -3
  5. data/features/argument_matchers/general_matchers.feature +2 -2
  6. data/features/argument_matchers/type_matchers.feature +3 -4
  7. data/features/message_expectations/README.md +2 -2
  8. data/features/message_expectations/any_instance.feature +2 -2
  9. data/features/message_expectations/block_local_expectations.feature.pending +3 -3
  10. data/features/message_expectations/expect_message_using_expect.feature +103 -0
  11. data/features/message_expectations/expect_message_using_should_receive.feature +118 -0
  12. data/features/message_expectations/receive_counts.feature +1 -1
  13. data/features/method_stubs/README.md +1 -1
  14. data/features/method_stubs/any_instance.feature +11 -11
  15. data/features/method_stubs/as_null_object.feature +1 -1
  16. data/features/method_stubs/stub_implementation.feature +2 -2
  17. data/features/outside_rspec/configuration.feature +0 -20
  18. data/features/spies/spy_partial_mock_method.feature +34 -0
  19. data/features/spies/spy_pure_mock_method.feature +76 -0
  20. data/features/spies/spy_unstubbed_method.feature +18 -0
  21. data/features/step_definitions/additional_cli_steps.rb +7 -0
  22. data/features/test_frameworks/test_unit.feature +43 -0
  23. data/lib/rspec/mocks.rb +9 -34
  24. data/lib/rspec/mocks/any_instance/chain.rb +8 -2
  25. data/lib/rspec/mocks/any_instance/expectation_chain.rb +19 -16
  26. data/lib/rspec/mocks/any_instance/recorder.rb +6 -3
  27. data/lib/rspec/mocks/any_instance/stub_chain.rb +11 -11
  28. data/lib/rspec/mocks/any_instance/stub_chain_chain.rb +8 -10
  29. data/lib/rspec/mocks/argument_list_matcher.rb +7 -3
  30. data/lib/rspec/mocks/configuration.rb +28 -1
  31. data/lib/rspec/mocks/deprecation.rb +18 -0
  32. data/lib/rspec/mocks/error_generator.rb +60 -8
  33. data/lib/rspec/mocks/errors.rb +1 -1
  34. data/lib/rspec/mocks/example_methods.rb +39 -3
  35. data/lib/rspec/mocks/extensions/marshal.rb +4 -10
  36. data/lib/rspec/mocks/framework.rb +16 -4
  37. data/lib/rspec/mocks/instance_method_stasher.rb +3 -0
  38. data/lib/rspec/mocks/matchers/have_received.rb +93 -0
  39. data/lib/rspec/mocks/matchers/receive.rb +92 -0
  40. data/lib/rspec/mocks/message_expectation.rb +66 -129
  41. data/lib/rspec/mocks/method_double.rb +50 -43
  42. data/lib/rspec/mocks/mutate_const.rb +8 -20
  43. data/lib/rspec/mocks/proxy.rb +41 -25
  44. data/lib/rspec/mocks/proxy_for_nil.rb +36 -0
  45. data/lib/rspec/mocks/space.rb +64 -11
  46. data/lib/rspec/mocks/stub_chain.rb +51 -0
  47. data/lib/rspec/mocks/syntax.rb +329 -0
  48. data/lib/rspec/mocks/targets.rb +69 -0
  49. data/lib/rspec/mocks/test_double.rb +25 -4
  50. data/lib/rspec/mocks/version.rb +1 -1
  51. data/lib/spec/mocks.rb +1 -3
  52. data/spec/rspec/mocks/and_call_original_spec.rb +8 -0
  53. data/spec/rspec/mocks/and_yield_spec.rb +6 -6
  54. data/spec/rspec/mocks/any_instance_spec.rb +43 -31
  55. data/spec/rspec/mocks/any_number_of_times_spec.rb +6 -0
  56. data/spec/rspec/mocks/argument_expectation_spec.rb +12 -14
  57. data/spec/rspec/mocks/at_least_spec.rb +46 -37
  58. data/spec/rspec/mocks/at_most_spec.rb +12 -12
  59. data/spec/rspec/mocks/block_return_value_spec.rb +18 -1
  60. data/spec/rspec/mocks/bug_report_10260_spec.rb +1 -1
  61. data/spec/rspec/mocks/bug_report_10263_spec.rb +1 -1
  62. data/spec/rspec/mocks/bug_report_11545_spec.rb +4 -4
  63. data/spec/rspec/mocks/bug_report_600_spec.rb +1 -1
  64. data/spec/rspec/mocks/bug_report_7611_spec.rb +1 -1
  65. data/spec/rspec/mocks/configuration_spec.rb +124 -0
  66. data/spec/rspec/mocks/double_spec.rb +13 -1
  67. data/spec/rspec/mocks/failing_argument_matchers_spec.rb +17 -1
  68. data/spec/rspec/mocks/hash_excluding_matcher_spec.rb +13 -13
  69. data/spec/rspec/mocks/matchers/have_received_spec.rb +266 -0
  70. data/spec/rspec/mocks/matchers/receive_spec.rb +318 -0
  71. data/spec/rspec/mocks/methods_spec.rb +27 -0
  72. data/spec/rspec/mocks/mock_ordering_spec.rb +4 -4
  73. data/spec/rspec/mocks/mock_space_spec.rb +94 -39
  74. data/spec/rspec/mocks/mock_spec.rb +65 -50
  75. data/spec/rspec/mocks/multiple_return_value_spec.rb +10 -10
  76. data/spec/rspec/mocks/mutate_const_spec.rb +21 -1
  77. data/spec/rspec/mocks/nil_expectation_warning_spec.rb +10 -4
  78. data/spec/rspec/mocks/null_object_mock_spec.rb +11 -2
  79. data/spec/rspec/mocks/once_counts_spec.rb +5 -5
  80. data/spec/rspec/mocks/options_hash_spec.rb +4 -4
  81. data/spec/rspec/mocks/partial_mock_spec.rb +20 -11
  82. data/spec/rspec/mocks/partial_mock_using_mocks_directly_spec.rb +7 -7
  83. data/spec/rspec/mocks/passing_argument_matchers_spec.rb +2 -2
  84. data/spec/rspec/mocks/precise_counts_spec.rb +6 -6
  85. data/spec/rspec/mocks/serialization_spec.rb +1 -22
  86. data/spec/rspec/mocks/stash_spec.rb +4 -12
  87. data/spec/rspec/mocks/stub_implementation_spec.rb +3 -3
  88. data/spec/rspec/mocks/stub_spec.rb +44 -20
  89. data/spec/rspec/mocks/stubbed_message_expectations_spec.rb +6 -6
  90. data/spec/rspec/mocks/twice_counts_spec.rb +6 -6
  91. data/spec/rspec/mocks_spec.rb +1 -3
  92. data/spec/spec_helper.rb +25 -1
  93. metadata +86 -81
  94. data/features/message_expectations/expect_message.feature +0 -94
  95. data/lib/rspec/mocks/any_instance.rb +0 -81
  96. data/lib/rspec/mocks/extensions/psych.rb +0 -23
  97. data/lib/rspec/mocks/methods.rb +0 -155
  98. data/lib/rspec/mocks/serialization.rb +0 -34
  99. data/spec/rspec/mocks/combining_implementation_instructions_spec.rb +0 -197
@@ -8,8 +8,8 @@ module RSpec
8
8
  it "fails if method is never called" do
9
9
  @double.should_receive(:do_something).at_least(4).times
10
10
  expect {
11
- @double.rspec_verify
12
- }.to raise_error(RSpec::Mocks::MockExpectationError)
11
+ verify @double
12
+ }.to raise_error(/expected: at least 4 times.*received: 0 times/m)
13
13
  end
14
14
 
15
15
  it "fails when called less than n times" do
@@ -18,30 +18,30 @@ module RSpec
18
18
  @double.do_something
19
19
  @double.do_something
20
20
  expect {
21
- @double.rspec_verify
22
- }.to raise_error(RSpec::Mocks::MockExpectationError)
21
+ verify @double
22
+ }.to raise_error(/expected: at least 4 times.*received: 3 times/m)
23
23
  end
24
24
 
25
25
  it "fails when at least once method is never called" do
26
26
  @double.should_receive(:do_something).at_least(:once)
27
27
  expect {
28
- @double.rspec_verify
29
- }.to raise_error(RSpec::Mocks::MockExpectationError)
28
+ verify @double
29
+ }.to raise_error(/expected: at least 1 time.*received: 0 times/m)
30
30
  end
31
31
 
32
32
  it "fails when at least twice method is called once" do
33
33
  @double.should_receive(:do_something).at_least(:twice)
34
34
  @double.do_something
35
35
  expect {
36
- @double.rspec_verify
37
- }.to raise_error(RSpec::Mocks::MockExpectationError)
36
+ verify @double
37
+ }.to raise_error(/expected: at least 2 times.*received: 1 time/m)
38
38
  end
39
39
 
40
40
  it "fails when at least twice method is never called" do
41
41
  @double.should_receive(:do_something).at_least(:twice)
42
42
  expect {
43
- @double.rspec_verify
44
- }.to raise_error(RSpec::Mocks::MockExpectationError)
43
+ verify @double
44
+ }.to raise_error(/expected: at least 2 times.*received: 0 times/m)
45
45
  end
46
46
 
47
47
  it "passes when at least n times method is called exactly n times" do
@@ -50,7 +50,7 @@ module RSpec
50
50
  @double.do_something
51
51
  @double.do_something
52
52
  @double.do_something
53
- @double.rspec_verify
53
+ verify @double
54
54
  end
55
55
 
56
56
  it "passes when at least n times method is called n plus 1 times" do
@@ -60,20 +60,20 @@ module RSpec
60
60
  @double.do_something
61
61
  @double.do_something
62
62
  @double.do_something
63
- @double.rspec_verify
63
+ verify @double
64
64
  end
65
65
 
66
66
  it "passes when at least once method is called once" do
67
67
  @double.should_receive(:do_something).at_least(:once)
68
68
  @double.do_something
69
- @double.rspec_verify
69
+ verify @double
70
70
  end
71
71
 
72
72
  it "passes when at least once method is called twice" do
73
73
  @double.should_receive(:do_something).at_least(:once)
74
74
  @double.do_something
75
75
  @double.do_something
76
- @double.rspec_verify
76
+ verify @double
77
77
  end
78
78
 
79
79
  it "passes when at least twice method is called three times" do
@@ -81,47 +81,56 @@ module RSpec
81
81
  @double.do_something
82
82
  @double.do_something
83
83
  @double.do_something
84
- @double.rspec_verify
84
+ verify @double
85
85
  end
86
86
 
87
87
  it "passes when at least twice method is called twice" do
88
88
  @double.should_receive(:do_something).at_least(:twice)
89
89
  @double.do_something
90
90
  @double.do_something
91
- @double.rspec_verify
91
+ verify @double
92
92
  end
93
93
 
94
94
  it "returns the value given by a block when the at least once method is called" do
95
95
  @double.should_receive(:to_s).at_least(:once) { "testing" }
96
96
  expect(@double.to_s).to eq "testing"
97
- @double.rspec_verify
97
+ verify @double
98
98
  end
99
99
 
100
- it "passes with at_least(0) with no return if called once" do
101
- @double.should_receive(:do_something).at_least(0).times
102
- @double.do_something
103
- end
100
+ context "when sent with 0" do
101
+ before { RSpec.stub(:deprecate) }
104
102
 
105
- it "passes with at_least(0) with return block if called once" do
106
- @double.should_receive(:do_something).at_least(0).times { true }
107
- @double.do_something
108
- end
103
+ it "outputs a deprecation warning" do
104
+ expect(RSpec).to receive(:deprecate).with("at_least\(0\) with should_receive", :replacement => "stub")
105
+ expect(@double).to receive(:do_something).at_least(0).times
106
+ end
109
107
 
110
- it "passes with at_least(0) with and_return if called once" do
111
- @double.should_receive(:do_something).at_least(0).times.and_return true
112
- @double.do_something
113
- end
108
+ it "passes with no return if called once" do
109
+ @double.should_receive(:do_something).at_least(0).times
110
+ @double.do_something
111
+ end
114
112
 
115
- it "passes with at_least(0) with no return if never called" do
116
- @double.should_receive(:do_something).at_least(0).times
117
- end
113
+ it "passes with return block if called once" do
114
+ @double.should_receive(:do_something).at_least(0).times { true }
115
+ @double.do_something
116
+ end
118
117
 
119
- it "passes with at_least(0) with return block if never called" do
120
- @double.should_receive(:do_something).at_least(0).times { true }
121
- end
118
+ it "passes with and_return if called once" do
119
+ @double.should_receive(:do_something).at_least(0).times.and_return true
120
+ @double.do_something
121
+ end
122
+
123
+ it "passes with no return if never called" do
124
+ @double.should_receive(:do_something).at_least(0).times
125
+ end
126
+
127
+ it "passes with return block if never called" do
128
+ @double.should_receive(:do_something).at_least(0).times { true }
129
+ end
122
130
 
123
- it "passes with at_least(0) with and_return if never called" do
124
- @double.should_receive(:do_something).at_least(0).times.and_return true
131
+ it "passes with and_return if never called" do
132
+ @double.should_receive(:do_something).at_least(0).times.and_return true
133
+ end
125
134
  end
126
135
 
127
136
  it "uses a stub value if no value set" do
@@ -11,53 +11,53 @@ module RSpec
11
11
  @double.should_receive(:do_something).at_most(2).times
12
12
  @double.do_something
13
13
  @double.do_something
14
- @double.rspec_verify
14
+ verify @double
15
15
  end
16
16
 
17
17
  it "passes when at_most(n) is called less than n times" do
18
18
  @double.should_receive(:do_something).at_most(2).times
19
19
  @double.do_something
20
- @double.rspec_verify
20
+ verify @double
21
21
  end
22
22
 
23
23
  it "passes when at_most(n) is never called" do
24
24
  @double.should_receive(:do_something).at_most(2).times
25
- @double.rspec_verify
25
+ verify @double
26
26
  end
27
27
 
28
28
  it "passes when at_most(:once) is called once" do
29
29
  @double.should_receive(:do_something).at_most(:once)
30
30
  @double.do_something
31
- @double.rspec_verify
31
+ verify @double
32
32
  end
33
33
 
34
34
  it "passes when at_most(:once) is never called" do
35
35
  @double.should_receive(:do_something).at_most(:once)
36
- @double.rspec_verify
36
+ verify @double
37
37
  end
38
38
 
39
39
  it "passes when at_most(:twice) is called once" do
40
40
  @double.should_receive(:do_something).at_most(:twice)
41
41
  @double.do_something
42
- @double.rspec_verify
42
+ verify @double
43
43
  end
44
44
 
45
45
  it "passes when at_most(:twice) is called twice" do
46
46
  @double.should_receive(:do_something).at_most(:twice)
47
47
  @double.do_something
48
48
  @double.do_something
49
- @double.rspec_verify
49
+ verify @double
50
50
  end
51
51
 
52
52
  it "passes when at_most(:twice) is never called" do
53
53
  @double.should_receive(:do_something).at_most(:twice)
54
- @double.rspec_verify
54
+ verify @double
55
55
  end
56
56
 
57
57
  it "returns the value given by a block when at_most(:once) method is called" do
58
58
  @double.should_receive(:to_s).at_most(:once) { "testing" }
59
59
  expect(@double.to_s).to eq "testing"
60
- @double.rspec_verify
60
+ verify @double
61
61
  end
62
62
 
63
63
  it "fails fast when at_most(n) times method is called n plus 1 times" do
@@ -66,7 +66,7 @@ module RSpec
66
66
  @double.do_something
67
67
  expect {
68
68
  @double.do_something
69
- }.to raise_error(RSpec::Mocks::MockExpectationError)
69
+ }.to raise_error(/expected: at most 2 times.*received: 3 times/m)
70
70
  end
71
71
 
72
72
  it "fails fast when at_most(:once) and is called twice" do
@@ -74,7 +74,7 @@ module RSpec
74
74
  @double.do_something
75
75
  expect {
76
76
  @double.do_something
77
- }.to raise_error(RSpec::Mocks::MockExpectationError)
77
+ }.to raise_error(/expected: at most 1 time.*received: 2 times/m)
78
78
  end
79
79
 
80
80
  it "fails fast when at_most(:twice) and is called three times" do
@@ -83,7 +83,7 @@ module RSpec
83
83
  @double.do_something
84
84
  expect {
85
85
  @double.do_something
86
- }.to raise_error(RSpec::Mocks::MockExpectationError)
86
+ }.to raise_error(/expected: at most 2 times.*received: 3 times/m)
87
87
  end
88
88
  end
89
89
  end
@@ -33,7 +33,7 @@ describe "a double declaration with a block handed to:" do
33
33
  end
34
34
  end
35
35
 
36
- %w[once twice any_number_of_times ordered and_return].each do |method|
36
+ %w[once twice ordered and_return].each do |method|
37
37
  describe method do
38
38
  it "returns the value of executing the block" do
39
39
  obj = Object.new
@@ -43,6 +43,23 @@ describe "a double declaration with a block handed to:" do
43
43
  end
44
44
  end
45
45
 
46
+ describe 'any_number_of_times' do
47
+ before do
48
+ RSpec.stub(:deprecate)
49
+ end
50
+
51
+ it "warns about deprecation" do
52
+ expect(RSpec).to receive(:deprecate).with("any_number_of_times", :replacement => "stub")
53
+ Object.new.stub(:foo).any_number_of_times { 'bar' }
54
+ end
55
+
56
+ it "returns the value of executing the block" do
57
+ obj = Object.new
58
+ obj.stub(:foo).any_number_of_times { 'bar' }
59
+ expect(obj.foo).to eq('bar')
60
+ end
61
+ end
62
+
46
63
  describe "times" do
47
64
  it "returns the value of executing the block" do
48
65
  obj = Object.new
@@ -3,6 +3,6 @@ require 'spec_helper'
3
3
  describe "An RSpec Mock" do
4
4
  it "hides internals in its inspect representation" do
5
5
  m = double('cup')
6
- expect(m.inspect).to match /#<RSpec::Mocks::Mock:0x[a-f0-9.]+ @name="cup">/
6
+ expect(m.inspect).to match(/#<RSpec::Mocks::Mock:0x[a-f0-9.]+ @name="cup">/)
7
7
  end
8
8
  end
@@ -16,7 +16,7 @@ describe "Double" do
16
16
  specify "then the next example should behave as expected instead of saying" do
17
17
  test_double.should_receive(:foobar)
18
18
  test_double.foobar
19
- test_double.rspec_verify
19
+ verify test_double
20
20
  begin
21
21
  test_double.foobar
22
22
  rescue Exception => e
@@ -4,17 +4,17 @@ class LiarLiarPantsOnFire
4
4
  def respond_to?(message, incl_private=false)
5
5
  true
6
6
  end
7
-
7
+
8
8
  def self.respond_to?(message, incl_private=false)
9
9
  true
10
10
  end
11
11
  end
12
-
12
+
13
13
  describe 'should_receive' do
14
14
  before(:each) do
15
15
  @liar = LiarLiarPantsOnFire.new
16
16
  end
17
-
17
+
18
18
  it "works when object lies about responding to a method" do
19
19
  @liar.should_receive(:something)
20
20
  @liar.something
@@ -24,7 +24,7 @@ describe 'should_receive' do
24
24
  LiarLiarPantsOnFire.should_receive(:something)
25
25
  LiarLiarPantsOnFire.something
26
26
  end
27
-
27
+
28
28
  it 'cleans up after itself' do
29
29
  expect((class << LiarLiarPantsOnFire; self; end).instance_methods).not_to include("something")
30
30
  end
@@ -9,7 +9,7 @@ module BugReport600
9
9
  end
10
10
  end
11
11
  end
12
-
12
+
13
13
  it "works" do
14
14
  ExampleClass.should_receive(:define_method).with("defined_method")
15
15
  ExampleClass.method_that_uses_define_method
@@ -11,6 +11,6 @@ module Bug7611
11
11
 
12
12
  it "should" do
13
13
  expect(Bar.new.class).to eq Bar
14
- end
14
+ end
15
15
  end
16
16
  end
@@ -20,6 +20,130 @@ module RSpec
20
20
  expect(instance_methods_of(mod_1)).to include(:stub, :should_receive)
21
21
  expect(instance_methods_of(mod_2)).to include(:stub, :should_receive)
22
22
  end
23
+
24
+ shared_examples_for "configuring the syntax" do
25
+ def sandboxed
26
+ orig_syntax = RSpec::Mocks.configuration.syntax
27
+ yield
28
+ ensure
29
+ configure_syntax(orig_syntax)
30
+ end
31
+
32
+ around(:each) { |ex| sandboxed(&ex) }
33
+ let(:dbl) { double }
34
+ let(:should_methods) { [:should_receive, :stub, :should_not_receive] }
35
+ let(:should_class_methods) { [:any_instance] }
36
+ let(:expect_methods) { [:receive, :allow, :expect_any_instance_of, :allow_any_instance_of] }
37
+
38
+ it 'defaults to enabling both the :should and :expect syntaxes' do
39
+ expect(dbl).to respond_to(*should_methods)
40
+ expect(self).to respond_to(*expect_methods)
41
+ end
42
+
43
+ context 'when configured to :expect' do
44
+ before { configure_syntax :expect }
45
+
46
+ it 'removes the should methods from every object' do
47
+ expect(dbl).not_to respond_to(*should_methods)
48
+ end
49
+
50
+ it 'removes `any_instance` from every class' do
51
+ expect(Class.new).not_to respond_to(*should_class_methods)
52
+ end
53
+
54
+ it 'adds the expect methods to the example group context' do
55
+ expect(self).to respond_to(*expect_methods)
56
+ end
57
+
58
+ it 'reports that the syntax is :expect' do
59
+ expect(configured_syntax).to eq([:expect])
60
+ end
61
+
62
+ it 'is a no-op when configured a second time' do
63
+ expect(Syntax.default_should_syntax_host).not_to receive(:method_undefined)
64
+ expect(::RSpec::Mocks::ExampleMethods).not_to receive(:method_added)
65
+ configure_syntax :expect
66
+ end
67
+ end
68
+
69
+ context 'when configured to :should' do
70
+ before { configure_syntax :should }
71
+
72
+ it 'adds the should methods to every object' do
73
+ expect(dbl).to respond_to(*should_methods)
74
+ end
75
+
76
+ it 'adds `any_instance` to every class' do
77
+ expect(Class.new).to respond_to(*should_class_methods)
78
+ end
79
+
80
+ it 'removes the expect methods from the example group context' do
81
+ expect(self).not_to respond_to(*expect_methods)
82
+ end
83
+
84
+ it 'reports that the syntax is :should' do
85
+ expect(configured_syntax).to eq([:should])
86
+ end
87
+
88
+ it 'is a no-op when configured a second time' do
89
+ Syntax.default_should_syntax_host.should_not_receive(:method_added)
90
+ ::RSpec::Mocks::ExampleMethods.should_not_receive(:method_undefined)
91
+ configure_syntax :should
92
+ end
93
+ end
94
+
95
+ context 'when configured to [:should, :expect]' do
96
+ before { configure_syntax [:should, :expect] }
97
+
98
+ it 'adds the should methods to every object' do
99
+ expect(dbl).to respond_to(*should_methods)
100
+ end
101
+
102
+ it 'adds `any_instance` to every class' do
103
+ expect(Class.new).to respond_to(*should_class_methods)
104
+ end
105
+
106
+ it 'adds the expect methods to the example group context' do
107
+ expect(self).to respond_to(*expect_methods)
108
+ end
109
+
110
+ it 'reports that both syntaxes are enabled' do
111
+ expect(configured_syntax).to eq([:should, :expect])
112
+ end
113
+ end
114
+ end
115
+
116
+ describe "configuring rspec-mocks directly" do
117
+ it_behaves_like "configuring the syntax" do
118
+ def configure_syntax(syntax)
119
+ RSpec::Mocks.configuration.syntax = syntax
120
+ end
121
+
122
+ def configured_syntax
123
+ RSpec::Mocks.configuration.syntax
124
+ end
125
+ end
126
+ end
127
+
128
+ describe "configuring using the rspec-core config API" do
129
+ it_behaves_like "configuring the syntax" do
130
+ def configure_syntax(syntax)
131
+ RSpec.configure do |rspec|
132
+ rspec.mock_with :rspec do |c|
133
+ c.syntax = syntax
134
+ end
135
+ end
136
+ end
137
+
138
+ def configured_syntax
139
+ RSpec.configure do |rspec|
140
+ rspec.mock_with :rspec do |c|
141
+ return c.syntax
142
+ end
143
+ end
144
+ end
145
+ end
146
+ end
23
147
  end
24
148
  end
25
149
  end