rspec-expectations 2.11.3 → 3.11.0

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 (152) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data/.document +1 -1
  4. data/.yardopts +1 -1
  5. data/Changelog.md +1026 -21
  6. data/{License.txt → LICENSE.md} +5 -3
  7. data/README.md +174 -78
  8. data/lib/rspec/expectations/block_snippet_extractor.rb +253 -0
  9. data/lib/rspec/expectations/configuration.rb +230 -0
  10. data/lib/rspec/expectations/expectation_target.rb +130 -55
  11. data/lib/rspec/expectations/fail_with.rb +17 -33
  12. data/lib/rspec/expectations/failure_aggregator.rb +212 -0
  13. data/lib/rspec/expectations/handler.rb +163 -29
  14. data/lib/rspec/expectations/minitest_integration.rb +58 -0
  15. data/lib/rspec/expectations/syntax.rb +68 -54
  16. data/lib/rspec/expectations/version.rb +1 -1
  17. data/lib/rspec/expectations.rb +59 -24
  18. data/lib/rspec/matchers/aliased_matcher.rb +116 -0
  19. data/lib/rspec/matchers/built_in/all.rb +86 -0
  20. data/lib/rspec/matchers/built_in/base_matcher.rb +150 -20
  21. data/lib/rspec/matchers/built_in/be.rb +115 -109
  22. data/lib/rspec/matchers/built_in/be_between.rb +77 -0
  23. data/lib/rspec/matchers/built_in/be_instance_of.rb +16 -1
  24. data/lib/rspec/matchers/built_in/be_kind_of.rb +10 -1
  25. data/lib/rspec/matchers/built_in/be_within.rb +43 -17
  26. data/lib/rspec/matchers/built_in/change.rb +392 -75
  27. data/lib/rspec/matchers/built_in/compound.rb +290 -0
  28. data/lib/rspec/matchers/built_in/contain_exactly.rb +302 -0
  29. data/lib/rspec/matchers/built_in/count_expectation.rb +169 -0
  30. data/lib/rspec/matchers/built_in/cover.rb +3 -0
  31. data/lib/rspec/matchers/built_in/eq.rb +26 -8
  32. data/lib/rspec/matchers/built_in/eql.rb +19 -8
  33. data/lib/rspec/matchers/built_in/equal.rb +56 -19
  34. data/lib/rspec/matchers/built_in/exist.rb +74 -10
  35. data/lib/rspec/matchers/built_in/has.rb +141 -22
  36. data/lib/rspec/matchers/built_in/have_attributes.rb +114 -0
  37. data/lib/rspec/matchers/built_in/include.rb +175 -20
  38. data/lib/rspec/matchers/built_in/match.rb +95 -1
  39. data/lib/rspec/matchers/built_in/operators.rb +128 -0
  40. data/lib/rspec/matchers/built_in/output.rb +207 -0
  41. data/lib/rspec/matchers/built_in/raise_error.rb +212 -38
  42. data/lib/rspec/matchers/built_in/respond_to.rb +155 -29
  43. data/lib/rspec/matchers/built_in/satisfy.rb +39 -9
  44. data/lib/rspec/matchers/built_in/start_or_end_with.rb +94 -0
  45. data/lib/rspec/matchers/built_in/throw_symbol.rb +58 -14
  46. data/lib/rspec/matchers/built_in/yield.rb +252 -98
  47. data/lib/rspec/matchers/built_in.rb +47 -33
  48. data/lib/rspec/matchers/composable.rb +171 -0
  49. data/lib/rspec/matchers/dsl.rb +530 -10
  50. data/lib/rspec/matchers/english_phrasing.rb +58 -0
  51. data/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +82 -0
  52. data/lib/rspec/matchers/fail_matchers.rb +42 -0
  53. data/lib/rspec/matchers/generated_descriptions.rb +15 -10
  54. data/lib/rspec/matchers/matcher_delegator.rb +35 -0
  55. data/lib/rspec/matchers/matcher_protocol.rb +105 -0
  56. data/lib/rspec/matchers.rb +604 -252
  57. data.tar.gz.sig +0 -0
  58. metadata +178 -278
  59. metadata.gz.sig +0 -0
  60. data/features/README.md +0 -49
  61. data/features/Upgrade.md +0 -53
  62. data/features/built_in_matchers/README.md +0 -90
  63. data/features/built_in_matchers/be.feature +0 -173
  64. data/features/built_in_matchers/be_within.feature +0 -46
  65. data/features/built_in_matchers/cover.feature +0 -45
  66. data/features/built_in_matchers/end_with.feature +0 -46
  67. data/features/built_in_matchers/equality.feature +0 -145
  68. data/features/built_in_matchers/exist.feature +0 -43
  69. data/features/built_in_matchers/expect_change.feature +0 -59
  70. data/features/built_in_matchers/expect_error.feature +0 -138
  71. data/features/built_in_matchers/have.feature +0 -103
  72. data/features/built_in_matchers/include.feature +0 -121
  73. data/features/built_in_matchers/match.feature +0 -50
  74. data/features/built_in_matchers/operators.feature +0 -221
  75. data/features/built_in_matchers/predicates.feature +0 -128
  76. data/features/built_in_matchers/respond_to.feature +0 -78
  77. data/features/built_in_matchers/satisfy.feature +0 -31
  78. data/features/built_in_matchers/start_with.feature +0 -46
  79. data/features/built_in_matchers/throw_symbol.feature +0 -85
  80. data/features/built_in_matchers/types.feature +0 -114
  81. data/features/built_in_matchers/yield.feature +0 -146
  82. data/features/custom_matchers/access_running_example.feature +0 -53
  83. data/features/custom_matchers/define_diffable_matcher.feature +0 -27
  84. data/features/custom_matchers/define_matcher.feature +0 -340
  85. data/features/custom_matchers/define_matcher_outside_rspec.feature +0 -38
  86. data/features/custom_matchers/define_matcher_with_fluent_interface.feature +0 -24
  87. data/features/customized_message.feature +0 -22
  88. data/features/diffing.feature +0 -85
  89. data/features/implicit_docstrings.feature +0 -52
  90. data/features/step_definitions/additional_cli_steps.rb +0 -22
  91. data/features/support/env.rb +0 -5
  92. data/features/syntax_configuration.feature +0 -68
  93. data/features/test_frameworks/test_unit.feature +0 -46
  94. data/lib/rspec/expectations/deprecation.rb +0 -38
  95. data/lib/rspec/expectations/differ.rb +0 -81
  96. data/lib/rspec/expectations/errors.rb +0 -9
  97. data/lib/rspec/expectations/extensions/array.rb +0 -9
  98. data/lib/rspec/expectations/extensions/object.rb +0 -39
  99. data/lib/rspec/expectations/extensions.rb +0 -2
  100. data/lib/rspec/matchers/be_close.rb +0 -9
  101. data/lib/rspec/matchers/built_in/have.rb +0 -108
  102. data/lib/rspec/matchers/built_in/match_array.rb +0 -45
  103. data/lib/rspec/matchers/built_in/start_and_end_with.rb +0 -48
  104. data/lib/rspec/matchers/compatibility.rb +0 -14
  105. data/lib/rspec/matchers/configuration.rb +0 -66
  106. data/lib/rspec/matchers/extensions/instance_eval_with_args.rb +0 -39
  107. data/lib/rspec/matchers/matcher.rb +0 -299
  108. data/lib/rspec/matchers/method_missing.rb +0 -12
  109. data/lib/rspec/matchers/operator_matcher.rb +0 -84
  110. data/lib/rspec/matchers/pretty.rb +0 -60
  111. data/lib/rspec-expectations.rb +0 -1
  112. data/spec/rspec/expectations/differ_spec.rb +0 -153
  113. data/spec/rspec/expectations/expectation_target_spec.rb +0 -65
  114. data/spec/rspec/expectations/extensions/kernel_spec.rb +0 -67
  115. data/spec/rspec/expectations/fail_with_spec.rb +0 -70
  116. data/spec/rspec/expectations/handler_spec.rb +0 -206
  117. data/spec/rspec/matchers/base_matcher_spec.rb +0 -60
  118. data/spec/rspec/matchers/be_close_spec.rb +0 -22
  119. data/spec/rspec/matchers/be_instance_of_spec.rb +0 -40
  120. data/spec/rspec/matchers/be_kind_of_spec.rb +0 -37
  121. data/spec/rspec/matchers/be_spec.rb +0 -452
  122. data/spec/rspec/matchers/be_within_spec.rb +0 -80
  123. data/spec/rspec/matchers/change_spec.rb +0 -528
  124. data/spec/rspec/matchers/configuration_spec.rb +0 -202
  125. data/spec/rspec/matchers/cover_spec.rb +0 -69
  126. data/spec/rspec/matchers/description_generation_spec.rb +0 -176
  127. data/spec/rspec/matchers/dsl_spec.rb +0 -57
  128. data/spec/rspec/matchers/eq_spec.rb +0 -54
  129. data/spec/rspec/matchers/eql_spec.rb +0 -41
  130. data/spec/rspec/matchers/equal_spec.rb +0 -60
  131. data/spec/rspec/matchers/exist_spec.rb +0 -110
  132. data/spec/rspec/matchers/has_spec.rb +0 -118
  133. data/spec/rspec/matchers/have_spec.rb +0 -461
  134. data/spec/rspec/matchers/include_spec.rb +0 -367
  135. data/spec/rspec/matchers/match_array_spec.rb +0 -124
  136. data/spec/rspec/matchers/match_spec.rb +0 -61
  137. data/spec/rspec/matchers/matcher_spec.rb +0 -434
  138. data/spec/rspec/matchers/matchers_spec.rb +0 -31
  139. data/spec/rspec/matchers/method_missing_spec.rb +0 -24
  140. data/spec/rspec/matchers/operator_matcher_spec.rb +0 -221
  141. data/spec/rspec/matchers/raise_error_spec.rb +0 -344
  142. data/spec/rspec/matchers/respond_to_spec.rb +0 -295
  143. data/spec/rspec/matchers/satisfy_spec.rb +0 -44
  144. data/spec/rspec/matchers/start_with_end_with_spec.rb +0 -182
  145. data/spec/rspec/matchers/throw_symbol_spec.rb +0 -116
  146. data/spec/rspec/matchers/yield_spec.rb +0 -402
  147. data/spec/spec_helper.rb +0 -27
  148. data/spec/support/classes.rb +0 -56
  149. data/spec/support/in_sub_process.rb +0 -31
  150. data/spec/support/matchers.rb +0 -22
  151. data/spec/support/ruby_version.rb +0 -10
  152. data/spec/support/shared_examples.rb +0 -13
@@ -1,344 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "should raise_error" do
4
- it_behaves_like("an RSpec matcher", :valid_value => lambda { raise "boom" },
5
- :invalid_value => lambda { }) do
6
- let(:matcher) { raise_error(/boom/) }
7
- end
8
-
9
- it "passes if anything is raised" do
10
- lambda {raise}.should raise_error
11
- end
12
-
13
- it "fails if nothing is raised" do
14
- lambda {
15
- lambda {}.should raise_error
16
- }.should fail_with("expected Exception but nothing was raised")
17
- end
18
- end
19
-
20
- describe "raise_exception aliased to raise_error" do
21
- it "passes if anything is raised" do
22
- lambda {raise}.should raise_exception
23
- end
24
- end
25
-
26
- describe "should raise_error {|err| ... }" do
27
- it "passes if there is an error" do
28
- ran = false
29
- lambda { non_existent_method }.should raise_error {|e|
30
- ran = true
31
- }
32
- ran.should be_true
33
- end
34
-
35
- it "passes the error to the block" do
36
- error = nil
37
- lambda { non_existent_method }.should raise_error {|e|
38
- error = e
39
- }
40
- error.should be_kind_of(NameError)
41
- end
42
- end
43
-
44
- describe "should_not raise_error" do
45
- it "passes if nothing is raised" do
46
- lambda {}.should_not raise_error
47
- end
48
-
49
- it "fails if anything is raised" do
50
- lambda {
51
- lambda { raise RuntimeError, "example message" }.should_not raise_error
52
- }.should fail_with("expected no Exception, got #<RuntimeError: example message>")
53
- end
54
- end
55
-
56
- describe "should raise_error(message)" do
57
- it "passes if RuntimeError is raised with the right message" do
58
- lambda {raise 'blah'}.should raise_error('blah')
59
- end
60
- it "passes if RuntimeError is raised with a matching message" do
61
- lambda {raise 'blah'}.should raise_error(/blah/)
62
- end
63
- it "passes if any other error is raised with the right message" do
64
- lambda {raise NameError.new('blah')}.should raise_error('blah')
65
- end
66
- it "fails if RuntimeError error is raised with the wrong message" do
67
- lambda do
68
- lambda {raise 'blarg'}.should raise_error('blah')
69
- end.should fail_with("expected Exception with \"blah\", got #<RuntimeError: blarg>")
70
- end
71
- it "fails if any other error is raised with the wrong message" do
72
- lambda do
73
- lambda {raise NameError.new('blarg')}.should raise_error('blah')
74
- end.should fail_with("expected Exception with \"blah\", got #<NameError: blarg>")
75
- end
76
- end
77
-
78
- describe "should_not raise_error(message)" do
79
- it "passes if RuntimeError error is raised with the different message" do
80
- lambda {raise 'blarg'}.should_not raise_error('blah')
81
- end
82
- it "passes if any other error is raised with the wrong message" do
83
- lambda {raise NameError.new('blarg')}.should_not raise_error('blah')
84
- end
85
- it "fails if RuntimeError is raised with message" do
86
- lambda do
87
- lambda {raise 'blah'}.should_not raise_error('blah')
88
- end.should fail_with(%Q|expected no Exception with "blah", got #<RuntimeError: blah>|)
89
- end
90
- it "fails if any other error is raised with message" do
91
- lambda do
92
- lambda {raise NameError.new('blah')}.should_not raise_error('blah')
93
- end.should fail_with(%Q|expected no Exception with "blah", got #<NameError: blah>|)
94
- end
95
- end
96
-
97
- describe "should raise_error(NamedError)" do
98
- it "passes if named error is raised" do
99
- lambda { non_existent_method }.should raise_error(NameError)
100
- end
101
-
102
- it "fails if nothing is raised" do
103
- lambda {
104
- lambda { }.should raise_error(NameError)
105
- }.should fail_with("expected NameError but nothing was raised")
106
- end
107
-
108
- it "fails if another error is raised (NameError)" do
109
- lambda {
110
- lambda { raise RuntimeError, "example message" }.should raise_error(NameError)
111
- }.should fail_with("expected NameError, got #<RuntimeError: example message>")
112
- end
113
-
114
- it "fails if another error is raised (NameError)" do
115
- lambda {
116
- lambda { load "non/existent/file" }.should raise_error(NameError)
117
- }.should fail_with(/expected NameError, got #<LoadError/)
118
- end
119
- end
120
-
121
- describe "should_not raise_error(NamedError)" do
122
- it "passes if nothing is raised" do
123
- lambda { }.should_not raise_error(NameError)
124
- end
125
-
126
- it "passes if another error is raised" do
127
- lambda { raise }.should_not raise_error(NameError)
128
- end
129
-
130
- it "fails if named error is raised" do
131
- lambda {
132
- lambda { 1 + 'b' }.should_not raise_error(TypeError)
133
- }.should fail_with(/expected no TypeError, got #<TypeError: String can't be/)
134
- end
135
- end
136
-
137
- describe "should raise_error(NamedError, error_message) with String" do
138
- it "passes if named error is raised with same message" do
139
- lambda { raise "example message" }.should raise_error(RuntimeError, "example message")
140
- end
141
-
142
- it "fails if nothing is raised" do
143
- lambda {
144
- lambda {}.should raise_error(RuntimeError, "example message")
145
- }.should fail_with("expected RuntimeError with \"example message\" but nothing was raised")
146
- end
147
-
148
- it "fails if incorrect error is raised" do
149
- lambda {
150
- lambda { raise RuntimeError, "example message" }.should raise_error(NameError, "example message")
151
- }.should fail_with("expected NameError with \"example message\", got #<RuntimeError: example message>")
152
- end
153
-
154
- it "fails if correct error is raised with incorrect message" do
155
- lambda {
156
- lambda { raise RuntimeError.new("not the example message") }.should raise_error(RuntimeError, "example message")
157
- }.should fail_with(/expected RuntimeError with \"example message\", got #<RuntimeError: not the example message/)
158
- end
159
- end
160
-
161
- describe "should raise_error(NamedError, error_message) { |err| ... }" do
162
- it "yields exception if named error is raised with same message" do
163
- ran = false
164
-
165
- lambda {
166
- raise "example message"
167
- }.should raise_error(RuntimeError, "example message") { |err|
168
- ran = true
169
- err.class.should eq RuntimeError
170
- err.message.should eq "example message"
171
- }
172
-
173
- ran.should be(true)
174
- end
175
-
176
- it "yielded block fails on it's own right" do
177
- ran, passed = false, false
178
-
179
- lambda {
180
- lambda {
181
- raise "example message"
182
- }.should raise_error(RuntimeError, "example message") { |err|
183
- ran = true
184
- 5.should eq 4
185
- passed = true
186
- }
187
- }.should fail_with(/expected: 4/m)
188
-
189
- ran.should be_true
190
- passed.should be_false
191
- end
192
-
193
- it "does NOT yield exception if no error was thrown" do
194
- ran = false
195
-
196
- lambda {
197
- lambda {}.should raise_error(RuntimeError, "example message") { |err|
198
- ran = true
199
- }
200
- }.should fail_with("expected RuntimeError with \"example message\" but nothing was raised")
201
-
202
- ran.should == false
203
- end
204
-
205
- it "does not yield exception if error class is not matched" do
206
- ran = false
207
-
208
- lambda {
209
- lambda {
210
- raise "example message"
211
- }.should raise_error(SyntaxError, "example message") { |err|
212
- ran = true
213
- }
214
- }.should fail_with("expected SyntaxError with \"example message\", got #<RuntimeError: example message>")
215
-
216
- ran.should == false
217
- end
218
-
219
- it "does NOT yield exception if error message is not matched" do
220
- ran = false
221
-
222
- lambda {
223
- lambda {
224
- raise "example message"
225
- }.should raise_error(RuntimeError, "different message") { |err|
226
- ran = true
227
- }
228
- }.should fail_with("expected RuntimeError with \"different message\", got #<RuntimeError: example message>")
229
-
230
- ran.should == false
231
- end
232
- end
233
-
234
- describe "should_not raise_error(NamedError, error_message) { |err| ... }" do
235
- it "passes if nothing is raised" do
236
- ran = false
237
-
238
- lambda {}.should_not raise_error(RuntimeError, "example message") { |err|
239
- ran = true
240
- }
241
-
242
- ran.should == false
243
- end
244
-
245
- it "passes if a different error is raised" do
246
- ran = false
247
-
248
- lambda { raise }.should_not raise_error(NameError, "example message") { |err|
249
- ran = true
250
- }
251
-
252
- ran.should == false
253
- end
254
-
255
- it "passes if same error is raised with different message" do
256
- ran = false
257
-
258
- lambda {
259
- raise RuntimeError.new("not the example message")
260
- }.should_not raise_error(RuntimeError, "example message") { |err|
261
- ran = true
262
- }
263
-
264
- ran.should == false
265
- end
266
-
267
- it "fails if named error is raised with same message" do
268
- ran = false
269
-
270
- lambda {
271
- lambda {
272
- raise "example message"
273
- }.should_not raise_error(RuntimeError, "example message") { |err|
274
- ran = true
275
- }
276
- }.should fail_with("expected no RuntimeError with \"example message\", got #<RuntimeError: example message>")
277
-
278
- ran.should == false
279
- end
280
- end
281
-
282
- describe "should_not raise_error(NamedError, error_message) with String" do
283
- it "passes if nothing is raised" do
284
- lambda {}.should_not raise_error(RuntimeError, "example message")
285
- end
286
-
287
- it "passes if a different error is raised" do
288
- lambda { raise }.should_not raise_error(NameError, "example message")
289
- end
290
-
291
- it "passes if same error is raised with different message" do
292
- lambda { raise RuntimeError.new("not the example message") }.should_not raise_error(RuntimeError, "example message")
293
- end
294
-
295
- it "fails if named error is raised with same message" do
296
- lambda {
297
- lambda { raise "example message" }.should_not raise_error(RuntimeError, "example message")
298
- }.should fail_with("expected no RuntimeError with \"example message\", got #<RuntimeError: example message>")
299
- end
300
- end
301
-
302
- describe "should raise_error(NamedError, error_message) with Regexp" do
303
- it "passes if named error is raised with matching message" do
304
- lambda { raise "example message" }.should raise_error(RuntimeError, /ample mess/)
305
- end
306
-
307
- it "fails if nothing is raised" do
308
- lambda {
309
- lambda {}.should raise_error(RuntimeError, /ample mess/)
310
- }.should fail_with("expected RuntimeError with message matching /ample mess/ but nothing was raised")
311
- end
312
-
313
- it "fails if incorrect error is raised" do
314
- lambda {
315
- lambda { raise RuntimeError, "example message" }.should raise_error(NameError, /ample mess/)
316
- }.should fail_with("expected NameError with message matching /ample mess/, got #<RuntimeError: example message>")
317
- end
318
-
319
- it "fails if correct error is raised with incorrect message" do
320
- lambda {
321
- lambda { raise RuntimeError.new("not the example message") }.should raise_error(RuntimeError, /less than ample mess/)
322
- }.should fail_with("expected RuntimeError with message matching /less than ample mess/, got #<RuntimeError: not the example message>")
323
- end
324
- end
325
-
326
- describe "should_not raise_error(NamedError, error_message) with Regexp" do
327
- it "passes if nothing is raised" do
328
- lambda {}.should_not raise_error(RuntimeError, /ample mess/)
329
- end
330
-
331
- it "passes if a different error is raised" do
332
- lambda { raise }.should_not raise_error(NameError, /ample mess/)
333
- end
334
-
335
- it "passes if same error is raised with non-matching message" do
336
- lambda { raise RuntimeError.new("non matching message") }.should_not raise_error(RuntimeError, /ample mess/)
337
- end
338
-
339
- it "fails if named error is raised with matching message" do
340
- lambda {
341
- lambda { raise "example message" }.should_not raise_error(RuntimeError, /ample mess/)
342
- }.should fail_with("expected no RuntimeError with message matching /ample mess/, got #<RuntimeError: example message>")
343
- end
344
- end
@@ -1,295 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "should respond_to(:sym)" do
4
- it_behaves_like "an RSpec matcher", :valid_value => "s", :invalid_value => 5 do
5
- let(:matcher) { respond_to(:upcase) }
6
- end
7
-
8
- it "passes if target responds to :sym" do
9
- Object.new.should respond_to(:methods)
10
- end
11
-
12
- it "fails if target does not respond to :sym" do
13
- lambda {
14
- "this string".should respond_to(:some_method)
15
- }.should fail_with(%q|expected "this string" to respond to :some_method|)
16
- end
17
-
18
- end
19
-
20
- describe "should respond_to(:sym).with(1).argument" do
21
- it "passes if target responds to :sym with 1 arg" do
22
- obj = Object.new
23
- def obj.foo(arg); end
24
- obj.should respond_to(:foo).with(1).argument
25
- end
26
-
27
- it "passes if target responds to any number of arguments" do
28
- obj = Object.new
29
- def obj.foo(*args); end
30
- obj.should respond_to(:foo).with(1).argument
31
- end
32
-
33
- it "passes if target responds to one or more arguments" do
34
- obj = Object.new
35
- def obj.foo(a, *args); end
36
- obj.should respond_to(:foo).with(1).argument
37
- end
38
-
39
- it "fails if target does not respond to :sym" do
40
- obj = Object.new
41
- lambda {
42
- obj.should respond_to(:some_method).with(1).argument
43
- }.should fail_with(/expected .* to respond to :some_method/)
44
- end
45
-
46
- it "fails if :sym expects 0 args" do
47
- obj = Object.new
48
- def obj.foo; end
49
- lambda {
50
- obj.should respond_to(:foo).with(1).argument
51
- }.should fail_with(/expected #<Object.*> to respond to :foo with 1 argument/)
52
- end
53
-
54
- it "fails if :sym expects 2 args" do
55
- obj = Object.new
56
- def obj.foo(arg, arg2); end
57
- lambda {
58
- obj.should respond_to(:foo).with(1).argument
59
- }.should fail_with(/expected #<Object.*> to respond to :foo with 1 argument/)
60
- end
61
-
62
- it "fails if :sym expects 2 or more args" do
63
- obj = Object.new
64
- def obj.foo(arg, arg2, *args); end
65
- lambda {
66
- obj.should respond_to(:foo).with(1).argument
67
- }.should fail_with(/expected #<Object.*> to respond to :foo with 1 argument/)
68
- end
69
- end
70
-
71
- describe "should respond_to(message1, message2)" do
72
-
73
- it "passes if target responds to both messages" do
74
- Object.new.should respond_to('methods', 'inspect')
75
- end
76
-
77
- it "fails if target does not respond to first message" do
78
- lambda {
79
- Object.new.should respond_to('method_one', 'inspect')
80
- }.should fail_with(/expected #<Object:.*> to respond to "method_one"/)
81
- end
82
-
83
- it "fails if target does not respond to second message" do
84
- lambda {
85
- Object.new.should respond_to('inspect', 'method_one')
86
- }.should fail_with(/expected #<Object:.*> to respond to "method_one"/)
87
- end
88
-
89
- it "fails if target does not respond to either message" do
90
- lambda {
91
- Object.new.should respond_to('method_one', 'method_two')
92
- }.should fail_with(/expected #<Object:.*> to respond to "method_one", "method_two"/)
93
- end
94
- end
95
-
96
- describe "should respond_to(:sym).with(2).arguments" do
97
- it "passes if target responds to :sym with 2 args" do
98
- obj = Object.new
99
- def obj.foo(a1, a2); end
100
- obj.should respond_to(:foo).with(2).arguments
101
- end
102
-
103
- it "passes if target responds to any number of arguments" do
104
- obj = Object.new
105
- def obj.foo(*args); end
106
- obj.should respond_to(:foo).with(2).arguments
107
- end
108
-
109
- it "passes if target responds to one or more arguments" do
110
- obj = Object.new
111
- def obj.foo(a, *args); end
112
- obj.should respond_to(:foo).with(2).arguments
113
- end
114
-
115
- it "passes if target responds to two or more arguments" do
116
- obj = Object.new
117
- def obj.foo(a, b, *args); end
118
- obj.should respond_to(:foo).with(2).arguments
119
- end
120
-
121
- it "fails if target does not respond to :sym" do
122
- obj = Object.new
123
- lambda {
124
- obj.should respond_to(:some_method).with(2).arguments
125
- }.should fail_with(/expected .* to respond to :some_method/)
126
- end
127
-
128
- it "fails if :sym expects 0 args" do
129
- obj = Object.new
130
- def obj.foo; end
131
- lambda {
132
- obj.should respond_to(:foo).with(2).arguments
133
- }.should fail_with(/expected #<Object.*> to respond to :foo with 2 arguments/)
134
- end
135
-
136
- it "fails if :sym expects 1 args" do
137
- obj = Object.new
138
- def obj.foo(arg); end
139
- lambda {
140
- obj.should respond_to(:foo).with(2).arguments
141
- }.should fail_with(/expected #<Object.*> to respond to :foo with 2 arguments/)
142
- end
143
-
144
- it "fails if :sym expects 3 or more args" do
145
- obj = Object.new
146
- def obj.foo(arg, arg2, arg3, *args); end
147
- lambda {
148
- obj.should respond_to(:foo).with(2).arguments
149
- }.should fail_with(/expected #<Object.*> to respond to :foo with 2 arguments/)
150
- end
151
- end
152
-
153
- describe "should_not respond_to(:sym)" do
154
-
155
- it "passes if target does not respond to :sym" do
156
- Object.new.should_not respond_to(:some_method)
157
- end
158
-
159
- it "fails if target responds to :sym" do
160
- lambda {
161
- Object.new.should_not respond_to(:methods)
162
- }.should fail_with(/expected #<Object:.*> not to respond to :methods/)
163
- end
164
-
165
- end
166
-
167
- describe "should_not respond_to(:sym).with(1).argument" do
168
- it "fails if target responds to :sym with 1 arg" do
169
- obj = Object.new
170
- def obj.foo(arg); end
171
- lambda {
172
- obj.should_not respond_to(:foo).with(1).argument
173
- }.should fail_with(/expected #<Object:.*> not to respond to :foo with 1 argument/)
174
- end
175
-
176
- it "fails if target responds to :sym with any number of args" do
177
- obj = Object.new
178
- def obj.foo(*args); end
179
- lambda {
180
- obj.should_not respond_to(:foo).with(1).argument
181
- }.should fail_with(/expected #<Object:.*> not to respond to :foo with 1 argument/)
182
- end
183
-
184
- it "fails if target responds to :sym with one or more args" do
185
- obj = Object.new
186
- def obj.foo(a, *args); end
187
- lambda {
188
- obj.should_not respond_to(:foo).with(1).argument
189
- }.should fail_with(/expected #<Object:.*> not to respond to :foo with 1 argument/)
190
- end
191
-
192
- it "passes if target does not respond to :sym" do
193
- obj = Object.new
194
- obj.should_not respond_to(:some_method).with(1).argument
195
- end
196
-
197
- it "passes if :sym expects 0 args" do
198
- obj = Object.new
199
- def obj.foo; end
200
- obj.should_not respond_to(:foo).with(1).argument
201
- end
202
-
203
- it "passes if :sym expects 2 args" do
204
- obj = Object.new
205
- def obj.foo(arg, arg2); end
206
- obj.should_not respond_to(:foo).with(1).argument
207
- end
208
-
209
- it "passes if :sym expects 2 or more args" do
210
- obj = Object.new
211
- def obj.foo(arg, arg2, *args); end
212
- obj.should_not respond_to(:foo).with(1).argument
213
- end
214
- end
215
-
216
- describe "should_not respond_to(message1, message2)" do
217
- it "passes if target does not respond to either message1 or message2" do
218
- Object.new.should_not respond_to(:some_method, :some_other_method)
219
- end
220
-
221
- it "fails if target responds to message1 but not message2" do
222
- lambda {
223
- Object.new.should_not respond_to(:object_id, :some_method)
224
- }.should fail_with(/expected #<Object:.*> not to respond to :object_id/)
225
- end
226
-
227
- it "fails if target responds to message2 but not message1" do
228
- lambda {
229
- Object.new.should_not respond_to(:some_method, :object_id)
230
- }.should fail_with(/expected #<Object:.*> not to respond to :object_id/)
231
- end
232
-
233
- it "fails if target responds to both message1 and message2" do
234
- lambda {
235
- Object.new.should_not respond_to(:class, :object_id)
236
- }.should fail_with(/expected #<Object:.*> not to respond to :class, :object_id/)
237
- end
238
- end
239
-
240
- describe "should_not respond_to(:sym).with(2).arguments" do
241
- it "fails if target responds to :sym with 2 args" do
242
- obj = Object.new
243
- def obj.foo(a1, a2); end
244
- lambda {
245
- obj.should_not respond_to(:foo).with(2).arguments
246
- }.should fail_with(/expected .* not to respond to :foo with 2 arguments/)
247
- end
248
-
249
- it "fails if target responds to :sym with any number args" do
250
- obj = Object.new
251
- def obj.foo(*args); end
252
- lambda {
253
- obj.should_not respond_to(:foo).with(2).arguments
254
- }.should fail_with(/expected .* not to respond to :foo with 2 arguments/)
255
- end
256
-
257
- it "fails if target responds to :sym with one or more args" do
258
- obj = Object.new
259
- def obj.foo(a, *args); end
260
- lambda {
261
- obj.should_not respond_to(:foo).with(2).arguments
262
- }.should fail_with(/expected .* not to respond to :foo with 2 arguments/)
263
- end
264
-
265
- it "fails if target responds to :sym with two or more args" do
266
- obj = Object.new
267
- def obj.foo(a, b, *args); end
268
- lambda {
269
- obj.should_not respond_to(:foo).with(2).arguments
270
- }.should fail_with(/expected .* not to respond to :foo with 2 arguments/)
271
- end
272
-
273
- it "passes if target does not respond to :sym" do
274
- obj = Object.new
275
- obj.should_not respond_to(:some_method).with(2).arguments
276
- end
277
-
278
- it "passes if :sym expects 0 args" do
279
- obj = Object.new
280
- def obj.foo; end
281
- obj.should_not respond_to(:foo).with(2).arguments
282
- end
283
-
284
- it "passes if :sym expects 2 args" do
285
- obj = Object.new
286
- def obj.foo(arg); end
287
- obj.should_not respond_to(:foo).with(2).arguments
288
- end
289
-
290
- it "passes if :sym expects 3 or more args" do
291
- obj = Object.new
292
- def obj.foo(a, b, c, *arg); end
293
- obj.should_not respond_to(:foo).with(2).arguments
294
- end
295
- end
@@ -1,44 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "should satisfy { block }" do
4
- it_behaves_like "an RSpec matcher", :valid_value => true, :invalid_value => false do
5
- let(:matcher) { satisfy { |v| v } }
6
- end
7
-
8
- it "describes itself" do
9
- satisfy.description.should eq("satisfy block")
10
- end
11
-
12
- it "passes if block returns true" do
13
- true.should satisfy { |val| val }
14
- true.should satisfy do |val|
15
- val
16
- end
17
- end
18
-
19
- it "fails if block returns false" do
20
- lambda {
21
- false.should satisfy { |val| val }
22
- }.should fail_with("expected false to satisfy block")
23
- lambda do
24
- false.should satisfy do |val|
25
- val
26
- end
27
- end.should fail_with("expected false to satisfy block")
28
- end
29
- end
30
-
31
- describe "should_not satisfy { block }" do
32
- it "passes if block returns false" do
33
- false.should_not satisfy { |val| val }
34
- false.should_not satisfy do |val|
35
- val
36
- end
37
- end
38
-
39
- it "fails if block returns true" do
40
- lambda {
41
- true.should_not satisfy { |val| val }
42
- }.should fail_with("expected true not to satisfy block")
43
- end
44
- end