rspec-expectations 3.0.0.beta1 → 3.0.0.beta2

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 (122) hide show
  1. data.tar.gz.sig +2 -2
  2. data/.yardopts +1 -0
  3. data/Changelog.md +138 -0
  4. data/README.md +75 -8
  5. data/features/README.md +2 -2
  6. data/features/built_in_matchers/README.md +12 -9
  7. data/features/built_in_matchers/comparisons.feature +2 -2
  8. data/features/built_in_matchers/contain_exactly.feature +46 -0
  9. data/features/built_in_matchers/expect_change.feature +2 -2
  10. data/features/built_in_matchers/include.feature +0 -48
  11. data/features/built_in_matchers/output.feature +70 -0
  12. data/features/composing_matchers.feature +250 -0
  13. data/features/compound_expectations.feature +45 -0
  14. data/features/custom_matchers/access_running_example.feature +1 -1
  15. data/features/custom_matchers/define_matcher.feature +6 -6
  16. data/features/custom_matchers/define_matcher_outside_rspec.feature +4 -8
  17. data/features/test_frameworks/{test_unit.feature → minitest.feature} +11 -11
  18. data/lib/rspec/expectations.rb +31 -42
  19. data/lib/rspec/expectations/diff_presenter.rb +141 -0
  20. data/lib/rspec/expectations/differ.rb +22 -132
  21. data/lib/rspec/expectations/encoded_string.rb +56 -0
  22. data/lib/rspec/expectations/expectation_target.rb +0 -30
  23. data/lib/rspec/expectations/fail_with.rb +2 -2
  24. data/lib/rspec/expectations/handler.rb +128 -31
  25. data/lib/rspec/expectations/minitest_integration.rb +16 -0
  26. data/lib/rspec/expectations/syntax.rb +4 -58
  27. data/lib/rspec/expectations/version.rb +1 -1
  28. data/lib/rspec/matchers.rb +298 -60
  29. data/lib/rspec/matchers/aliased_matcher.rb +35 -0
  30. data/lib/rspec/matchers/built_in.rb +37 -33
  31. data/lib/rspec/matchers/built_in/base_matcher.rb +25 -15
  32. data/lib/rspec/matchers/built_in/be.rb +23 -31
  33. data/lib/rspec/matchers/built_in/be_between.rb +55 -0
  34. data/lib/rspec/matchers/built_in/be_within.rb +15 -11
  35. data/lib/rspec/matchers/built_in/change.rb +198 -81
  36. data/lib/rspec/matchers/built_in/compound.rb +106 -0
  37. data/lib/rspec/matchers/built_in/contain_exactly.rb +245 -0
  38. data/lib/rspec/matchers/built_in/eq.rb +43 -4
  39. data/lib/rspec/matchers/built_in/eql.rb +2 -2
  40. data/lib/rspec/matchers/built_in/equal.rb +35 -18
  41. data/lib/rspec/matchers/built_in/has.rb +16 -15
  42. data/lib/rspec/matchers/built_in/include.rb +45 -23
  43. data/lib/rspec/matchers/built_in/match.rb +6 -3
  44. data/lib/rspec/matchers/built_in/operators.rb +103 -0
  45. data/lib/rspec/matchers/built_in/output.rb +108 -0
  46. data/lib/rspec/matchers/built_in/raise_error.rb +9 -15
  47. data/lib/rspec/matchers/built_in/respond_to.rb +5 -4
  48. data/lib/rspec/matchers/built_in/satisfy.rb +4 -3
  49. data/lib/rspec/matchers/built_in/start_and_end_with.rb +37 -16
  50. data/lib/rspec/matchers/built_in/throw_symbol.rb +6 -5
  51. data/lib/rspec/matchers/built_in/yield.rb +31 -29
  52. data/lib/rspec/matchers/composable.rb +138 -0
  53. data/lib/rspec/matchers/dsl.rb +330 -0
  54. data/lib/rspec/matchers/generated_descriptions.rb +6 -6
  55. data/lib/rspec/matchers/matcher_delegator.rb +33 -0
  56. data/lib/rspec/matchers/pretty.rb +13 -2
  57. data/spec/rspec/expectations/{differ_spec.rb → diff_presenter_spec.rb} +56 -36
  58. data/spec/rspec/expectations/encoded_string_spec.rb +74 -0
  59. data/spec/rspec/expectations/extensions/kernel_spec.rb +11 -11
  60. data/spec/rspec/expectations/fail_with_spec.rb +8 -8
  61. data/spec/rspec/expectations/handler_spec.rb +27 -49
  62. data/spec/rspec/expectations/minitest_integration_spec.rb +27 -0
  63. data/spec/rspec/expectations/syntax_spec.rb +17 -67
  64. data/spec/rspec/expectations_spec.rb +7 -52
  65. data/spec/rspec/matchers/aliased_matcher_spec.rb +48 -0
  66. data/spec/rspec/matchers/aliases_spec.rb +449 -0
  67. data/spec/rspec/matchers/{base_matcher_spec.rb → built_in/base_matcher_spec.rb} +24 -3
  68. data/spec/rspec/matchers/built_in/be_between_spec.rb +159 -0
  69. data/spec/rspec/matchers/{be_instance_of_spec.rb → built_in/be_instance_of_spec.rb} +0 -0
  70. data/spec/rspec/matchers/{be_kind_of_spec.rb → built_in/be_kind_of_spec.rb} +0 -0
  71. data/spec/rspec/matchers/{be_spec.rb → built_in/be_spec.rb} +76 -32
  72. data/spec/rspec/matchers/{be_within_spec.rb → built_in/be_within_spec.rb} +6 -2
  73. data/spec/rspec/matchers/{change_spec.rb → built_in/change_spec.rb} +310 -69
  74. data/spec/rspec/matchers/built_in/compound_spec.rb +292 -0
  75. data/spec/rspec/matchers/built_in/contain_exactly_spec.rb +441 -0
  76. data/spec/rspec/matchers/{cover_spec.rb → built_in/cover_spec.rb} +0 -0
  77. data/spec/rspec/matchers/built_in/eq_spec.rb +156 -0
  78. data/spec/rspec/matchers/{eql_spec.rb → built_in/eql_spec.rb} +2 -2
  79. data/spec/rspec/matchers/built_in/equal_spec.rb +106 -0
  80. data/spec/rspec/matchers/{exist_spec.rb → built_in/exist_spec.rb} +1 -1
  81. data/spec/rspec/matchers/{has_spec.rb → built_in/has_spec.rb} +39 -0
  82. data/spec/rspec/matchers/{include_spec.rb → built_in/include_spec.rb} +118 -109
  83. data/spec/rspec/matchers/{match_spec.rb → built_in/match_spec.rb} +30 -2
  84. data/spec/rspec/matchers/{operator_matcher_spec.rb → built_in/operators_spec.rb} +26 -26
  85. data/spec/rspec/matchers/built_in/output_spec.rb +165 -0
  86. data/spec/rspec/matchers/{raise_error_spec.rb → built_in/raise_error_spec.rb} +81 -11
  87. data/spec/rspec/matchers/{respond_to_spec.rb → built_in/respond_to_spec.rb} +0 -0
  88. data/spec/rspec/matchers/{satisfy_spec.rb → built_in/satisfy_spec.rb} +0 -0
  89. data/spec/rspec/matchers/{start_with_end_with_spec.rb → built_in/start_and_end_with_spec.rb} +82 -15
  90. data/spec/rspec/matchers/{throw_symbol_spec.rb → built_in/throw_symbol_spec.rb} +29 -10
  91. data/spec/rspec/matchers/{yield_spec.rb → built_in/yield_spec.rb} +90 -0
  92. data/spec/rspec/matchers/configuration_spec.rb +7 -39
  93. data/spec/rspec/matchers/description_generation_spec.rb +22 -6
  94. data/spec/rspec/matchers/dsl_spec.rb +838 -0
  95. data/spec/rspec/matchers/legacy_spec.rb +101 -0
  96. data/spec/rspec/matchers_spec.rb +74 -0
  97. data/spec/spec_helper.rb +35 -21
  98. data/spec/support/shared_examples.rb +26 -4
  99. metadata +172 -116
  100. metadata.gz.sig +3 -4
  101. checksums.yaml +0 -15
  102. checksums.yaml.gz.sig +0 -0
  103. data/features/built_in_matchers/match_array.feature +0 -37
  104. data/lib/rspec/expectations/errors.rb +0 -9
  105. data/lib/rspec/expectations/extensions.rb +0 -1
  106. data/lib/rspec/expectations/extensions/object.rb +0 -29
  107. data/lib/rspec/matchers/built_in/match_array.rb +0 -51
  108. data/lib/rspec/matchers/compatibility.rb +0 -14
  109. data/lib/rspec/matchers/matcher.rb +0 -301
  110. data/lib/rspec/matchers/method_missing.rb +0 -12
  111. data/lib/rspec/matchers/operator_matcher.rb +0 -99
  112. data/lib/rspec/matchers/test_unit_integration.rb +0 -11
  113. data/spec/rspec/matchers/eq_spec.rb +0 -60
  114. data/spec/rspec/matchers/equal_spec.rb +0 -78
  115. data/spec/rspec/matchers/include_matcher_integration_spec.rb +0 -30
  116. data/spec/rspec/matchers/match_array_spec.rb +0 -194
  117. data/spec/rspec/matchers/matcher_spec.rb +0 -706
  118. data/spec/rspec/matchers/matchers_spec.rb +0 -36
  119. data/spec/rspec/matchers/method_missing_spec.rb +0 -28
  120. data/spec/support/classes.rb +0 -56
  121. data/spec/support/in_sub_process.rb +0 -37
  122. data/spec/support/ruby_version.rb +0 -10
@@ -1,57 +1,12 @@
1
+ require 'spec_helper'
2
+
1
3
  module RSpec
2
4
  describe Expectations do
3
- def file_contents_for(lib, filename)
4
- # http://rubular.com/r/HYpUMftlG2
5
- path = $LOAD_PATH.find { |p| p.match(/\/rspec-#{lib}(-[a-f0-9]+)?\/lib/) }
6
- file = File.join(path, filename)
7
- File.read(file)
8
- end
9
-
10
- describe '.method_handle_for(object, method_name)' do
11
-
12
- class UntamperedClass
13
- def foo
14
- :bar
15
- end
16
- end
17
-
18
- class ClassWithMethodOverridden < UntamperedClass
19
- def method
20
- :baz
21
- end
22
- end
23
-
24
- if RUBY_VERSION.to_f > 1.8
25
- class BasicClass < BasicObject
26
- def foo
27
- :bar
28
- end
29
- end
30
-
31
- class BasicClassWithKernel < BasicClass
32
- include ::Kernel
33
- end
34
- end
35
-
36
- it 'fetches method definitions for vanilla objects' do
37
- object = UntamperedClass.new
38
- expect(Expectations.method_handle_for(object, :foo).call).to eq :bar
39
- end
40
-
41
- it 'fetches method definitions for objects with method redefined' do
42
- object = ClassWithMethodOverridden.new
43
- expect(Expectations.method_handle_for(object, :foo).call).to eq :bar
44
- end
45
-
46
- it 'fetches method definitions for basic objects', :if => RUBY_VERSION.to_i >= 2 do
47
- object = BasicClass.new
48
- expect(Expectations.method_handle_for(object, :foo).call).to eq :bar
49
- end
50
-
51
- it 'fetches method definitions for basic objects with kernel mixed in', :if => RUBY_VERSION.to_f > 1.8 do
52
- object = BasicClassWithKernel.new
53
- expect(Expectations.method_handle_for(object, :foo).call).to eq :bar
54
- end
5
+ it 'does not allow expectation failures to be caught by a bare rescue' do
6
+ expect {
7
+ expect(2).to eq(3) rescue nil
8
+ }.to fail_matching("expected: 3")
55
9
  end
56
10
  end
57
11
  end
12
+
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ module RSpec
4
+ module Matchers
5
+ describe AliasedMatcher do
6
+ RSpec::Matchers.define :my_base_matcher do
7
+ def foo
8
+ 13
9
+ end
10
+
11
+ def description
12
+ "my base matcher description"
13
+ end
14
+ end
15
+
16
+ it 'can get a method object for delegated methods', :if => (RUBY_VERSION.to_f > 1.8) do
17
+ matcher = my_base_matcher
18
+ decorated = AliasedMatcher.new(matcher, Proc.new { })
19
+
20
+ expect(decorated.method(:foo).call).to eq(13)
21
+ end
22
+
23
+ it 'can get a method object for `description`' do
24
+ matcher = my_base_matcher
25
+ decorated = AliasedMatcher.new(matcher, Proc.new { "overriden description" })
26
+
27
+ expect(decorated.method(:description).call).to eq("overriden description")
28
+ end
29
+
30
+ RSpec::Matchers.alias_matcher :my_overriden_matcher, :my_base_matcher do |desc|
31
+ desc + " (overriden)"
32
+ end
33
+
34
+ it 'overrides the description with the provided block' do
35
+ matcher = my_overriden_matcher
36
+ expect(matcher.description).to eq("my base matcher description (overriden)")
37
+ end
38
+
39
+ RSpec::Matchers.alias_matcher :my_blockless_override, :my_base_matcher
40
+
41
+ it 'provides a default description override based on the old and new games' do
42
+ matcher = my_blockless_override
43
+ expect(matcher.description).to eq("my blockless override description")
44
+ end
45
+ end
46
+ end
47
+ end
48
+
@@ -0,0 +1,449 @@
1
+ require 'spec_helper'
2
+
3
+ module RSpec
4
+ describe Matchers, "aliases", :order => :defined do
5
+ matcher :be_aliased_to do |old_matcher|
6
+ chain :with_description do |desc|
7
+ @expected_desc = desc
8
+ end
9
+
10
+ match do |aliased_matcher|
11
+ @actual_desc = aliased_matcher.description
12
+
13
+ @actual_desc == @expected_desc &&
14
+ aliased_matcher.base_matcher.class == old_matcher.class
15
+ end
16
+
17
+ failure_message do |aliased_matcher|
18
+ "expected #{aliased_matcher} to be aliased to #{old_matcher} with " +
19
+ "description: #{@expected_desc.inspect}, but got #{@actual_desc.inspect}"
20
+ end
21
+
22
+ description do |aliased_matcher|
23
+ "have an alias for #{old_matcher.description.inspect} with description: #{@expected_desc.inspect}"
24
+ end
25
+ end
26
+
27
+ specify do
28
+ expect(a_truthy_value).to be_aliased_to(be_truthy).with_description("a truthy value")
29
+ end
30
+
31
+ specify do
32
+ expect(a_falsey_value).to be_aliased_to(be_falsey).with_description("a falsey value")
33
+ end
34
+
35
+ specify do
36
+ expect(be_falsy).to be_aliased_to(be_falsey).with_description("be falsy")
37
+ end
38
+
39
+ specify do
40
+ expect(a_falsy_value).to be_aliased_to(be_falsey).with_description("a falsy value")
41
+ end
42
+
43
+ specify do
44
+ expect(a_nil_value).to be_aliased_to(be_nil).with_description("a nil value")
45
+ end
46
+
47
+ specify do
48
+ expect(a_value > 3).to be_aliased_to(be > 3).with_description("a value > 3")
49
+ end
50
+
51
+ specify do
52
+ expect(a_value < 3).to be_aliased_to(be < 3).with_description("a value < 3")
53
+ end
54
+
55
+ specify do
56
+ expect(a_value <= 3).to be_aliased_to(be <= 3).with_description("a value <= 3")
57
+ end
58
+
59
+ specify do
60
+ expect(a_value == 3).to be_aliased_to(be == 3).with_description("a value == 3")
61
+ end
62
+
63
+ specify do
64
+ expect(a_value === 3).to be_aliased_to(be === 3).with_description("a value === 3")
65
+ end
66
+
67
+ specify do
68
+ expect(
69
+ an_instance_of(Integer)
70
+ ).to be_aliased_to(
71
+ be_an_instance_of(Integer)
72
+ ).with_description("an instance of Integer")
73
+ end
74
+
75
+ specify do
76
+ expect(
77
+ a_kind_of(Integer)
78
+ ).to be_aliased_to(
79
+ be_a_kind_of(Integer)
80
+ ).with_description("a kind of Integer")
81
+ end
82
+
83
+ specify do
84
+ expect(
85
+ a_value_between(1, 10)
86
+ ).to be_aliased_to(
87
+ be_between(1, 10)
88
+ ).with_description("a value between 1 and 10 (inclusive)")
89
+ end
90
+
91
+ specify do
92
+ expect(
93
+ a_value_within(0.1).of(3)
94
+ ).to be_aliased_to(
95
+ be_within(0.1).of(3)
96
+ ).with_description("a value within 0.1 of 3")
97
+ end
98
+
99
+ specify do
100
+ expect(
101
+ within(0.1).of(3)
102
+ ).to be_aliased_to(
103
+ be_within(0.1).of(3)
104
+ ).with_description("within 0.1 of 3")
105
+ end
106
+
107
+ specify do
108
+ expect(a_block_changing).to be_aliased_to(change).with_description("a block changing result")
109
+ end
110
+
111
+ specify do
112
+ expect(changing).to be_aliased_to(change).with_description("changing result")
113
+ end
114
+
115
+ specify do
116
+ expect(
117
+ a_collection_containing_exactly(1, 2)
118
+ ).to be_aliased_to(
119
+ contain_exactly(1, 2)
120
+ ).with_description("a collection containing exactly 1 and 2")
121
+ end
122
+
123
+ specify do
124
+ expect(
125
+ containing_exactly(1, 2)
126
+ ).to be_aliased_to(
127
+ contain_exactly(1, 2)
128
+ ).with_description("containing exactly 1 and 2")
129
+ end
130
+
131
+ specify do
132
+ expect(
133
+ a_range_covering(1, 2)
134
+ ).to be_aliased_to(
135
+ cover(1, 2)
136
+ ).with_description("a range covering 1 and 2")
137
+ end
138
+
139
+ specify do
140
+ expect(
141
+ covering(1, 2)
142
+ ).to be_aliased_to(
143
+ cover(1, 2)
144
+ ).with_description("covering 1 and 2")
145
+ end
146
+
147
+ specify do
148
+ expect(
149
+ ending_with(23)
150
+ ).to be_aliased_to(
151
+ end_with(23)
152
+ ).with_description("ending with 23")
153
+ end
154
+
155
+ specify do
156
+ expect(
157
+ a_collection_ending_with(23)
158
+ ).to be_aliased_to(
159
+ end_with(23)
160
+ ).with_description("a collection ending with 23")
161
+ end
162
+
163
+ specify do
164
+ expect(
165
+ a_string_ending_with("z")
166
+ ).to be_aliased_to(
167
+ end_with("z")
168
+ ).with_description('a string ending with "z"')
169
+ end
170
+
171
+ specify do
172
+ expect(
173
+ an_object_eq_to(3)
174
+ ).to be_aliased_to(eq 3).with_description("an object eq to 3")
175
+ end
176
+
177
+ specify do
178
+ expect(
179
+ eq_to(3)
180
+ ).to be_aliased_to(eq 3).with_description("eq to 3")
181
+ end
182
+
183
+ specify do
184
+ expect(
185
+ an_object_eql_to(3)
186
+ ).to be_aliased_to(eql 3).with_description("an object eql to 3")
187
+ end
188
+
189
+ specify do
190
+ expect(
191
+ eql_to(3)
192
+ ).to be_aliased_to(eql 3).with_description("eql to 3")
193
+ end
194
+
195
+ specify do
196
+ expect(
197
+ an_object_equal_to(3)
198
+ ).to be_aliased_to(equal 3).with_description("an object equal to 3")
199
+ end
200
+
201
+ specify do
202
+ expect(
203
+ equal_to(3)
204
+ ).to be_aliased_to(equal 3).with_description("equal to 3")
205
+ end
206
+
207
+ specify do
208
+ expect(
209
+ an_object_existing
210
+ ).to be_aliased_to(exist).with_description("an object existing")
211
+ end
212
+
213
+ specify do
214
+ expect(existing).to be_aliased_to(exist).with_description("existing")
215
+ end
216
+
217
+ specify do
218
+ expect(
219
+ a_string_including("a")
220
+ ).to be_aliased_to(
221
+ include("a")
222
+ ).with_description('a string including "a"')
223
+ end
224
+
225
+ specify do
226
+ expect(
227
+ a_collection_including("a")
228
+ ).to be_aliased_to(
229
+ include("a")
230
+ ).with_description('a collection including "a"')
231
+ end
232
+
233
+ specify do
234
+ expect(
235
+ a_hash_including(:a => 5)
236
+ ).to be_aliased_to(
237
+ include(:a => 5)
238
+ ).with_description('a hash including {:a => 5}')
239
+ end
240
+
241
+ specify do
242
+ expect(
243
+ including(3)
244
+ ).to be_aliased_to(
245
+ include(3)
246
+ ).with_description('including 3')
247
+ end
248
+
249
+ specify do
250
+ expect(
251
+ a_string_matching(/foo/)
252
+ ).to be_aliased_to(
253
+ match(/foo/)
254
+ ).with_description('a string matching /foo/')
255
+ end
256
+
257
+ specify do
258
+ expect(
259
+ an_object_matching(/foo/)
260
+ ).to be_aliased_to(
261
+ match(/foo/)
262
+ ).with_description('an object matching /foo/')
263
+ end
264
+
265
+ specify do
266
+ expect(
267
+ match_regex(/foo/)
268
+ ).to be_aliased_to(
269
+ match(/foo/)
270
+ ).with_description('match regex /foo/')
271
+ end
272
+
273
+ specify do
274
+ expect(
275
+ matching(/foo/)
276
+ ).to be_aliased_to(
277
+ match(/foo/)
278
+ ).with_description('matching /foo/')
279
+ end
280
+
281
+ specify do
282
+ expect(
283
+ a_block_outputting('foo').to_stdout
284
+ ).to be_aliased_to(
285
+ output('foo').to_stdout
286
+ ).with_description('a block outputting "foo" to stdout')
287
+ end
288
+
289
+ specify do
290
+ expect(
291
+ a_block_outputting('foo').to_stderr
292
+ ).to be_aliased_to(
293
+ output('foo').to_stderr
294
+ ).with_description('a block outputting "foo" to stderr')
295
+ end
296
+
297
+ specify do
298
+ expect(
299
+ a_block_raising(ArgumentError)
300
+ ).to be_aliased_to(
301
+ raise_error(ArgumentError)
302
+ ).with_description('a block raising ArgumentError')
303
+ end
304
+
305
+ specify do
306
+ expect(
307
+ raising(ArgumentError)
308
+ ).to be_aliased_to(
309
+ raise_error(ArgumentError)
310
+ ).with_description("raising ArgumentError")
311
+ end
312
+
313
+ specify do
314
+ expect(
315
+ an_object_responding_to(:foo)
316
+ ).to be_aliased_to(
317
+ respond_to(:foo)
318
+ ).with_description("an object responding to #foo")
319
+ end
320
+
321
+ specify do
322
+ expect(
323
+ responding_to(:foo)
324
+ ).to be_aliased_to(
325
+ respond_to(:foo)
326
+ ).with_description("responding to #foo")
327
+ end
328
+
329
+ specify do
330
+ expect(
331
+ an_object_satisfying { }
332
+ ).to be_aliased_to(
333
+ satisfy { }
334
+ ).with_description("an object satisfying block")
335
+ end
336
+
337
+ specify do
338
+ expect(
339
+ satisfying { }
340
+ ).to be_aliased_to(
341
+ satisfy { }
342
+ ).with_description("satisfying block")
343
+ end
344
+
345
+ specify do
346
+ expect(
347
+ a_collection_starting_with(23)
348
+ ).to be_aliased_to(
349
+ start_with(23)
350
+ ).with_description("a collection starting with 23")
351
+ end
352
+
353
+ specify do
354
+ expect(
355
+ a_string_starting_with("z")
356
+ ).to be_aliased_to(
357
+ start_with("z")
358
+ ).with_description('a string starting with "z"')
359
+ end
360
+
361
+ specify do
362
+ expect(
363
+ starting_with("d")
364
+ ).to be_aliased_to(
365
+ start_with("d")
366
+ ).with_description('starting with "d"')
367
+ end
368
+
369
+ specify do
370
+ expect(
371
+ a_block_throwing(:foo)
372
+ ).to be_aliased_to(
373
+ throw_symbol(:foo)
374
+ ).with_description("a block throwing :foo")
375
+ end
376
+
377
+ specify do
378
+ expect(
379
+ throwing(:foo)
380
+ ).to be_aliased_to(
381
+ throw_symbol(:foo)
382
+ ).with_description("throwing :foo")
383
+ end
384
+
385
+ specify do
386
+ expect(
387
+ a_block_yielding_control
388
+ ).to be_aliased_to(
389
+ yield_control
390
+ ).with_description("a block yielding control")
391
+ end
392
+
393
+ specify do
394
+ expect(
395
+ yielding_control
396
+ ).to be_aliased_to(
397
+ yield_control
398
+ ).with_description("yielding control")
399
+ end
400
+
401
+ specify do
402
+ expect(
403
+ a_block_yielding_with_no_args
404
+ ).to be_aliased_to(
405
+ yield_with_no_args
406
+ ).with_description("a block yielding with no args")
407
+ end
408
+
409
+ specify do
410
+ expect(
411
+ yielding_with_no_args
412
+ ).to be_aliased_to(
413
+ yield_with_no_args
414
+ ).with_description("yielding with no args")
415
+ end
416
+
417
+ specify do
418
+ expect(
419
+ a_block_yielding_with_args
420
+ ).to be_aliased_to(
421
+ yield_with_args
422
+ ).with_description("a block yielding with args")
423
+ end
424
+
425
+ specify do
426
+ expect(
427
+ yielding_with_args
428
+ ).to be_aliased_to(
429
+ yield_with_args
430
+ ).with_description("yielding with args")
431
+ end
432
+
433
+ specify do
434
+ expect(
435
+ a_block_yielding_successive_args
436
+ ).to be_aliased_to(
437
+ yield_successive_args
438
+ ).with_description("a block yielding successive args()")
439
+ end
440
+
441
+ specify do
442
+ expect(
443
+ yielding_successive_args
444
+ ).to be_aliased_to(
445
+ yield_successive_args
446
+ ).with_description("yielding successive args()")
447
+ end
448
+ end
449
+ end