rspec-core 3.0.0.beta2 → 3.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (201) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/.yardopts +1 -0
  5. data/Changelog.md +297 -57
  6. data/README.md +16 -13
  7. data/lib/rspec/core.rb +55 -84
  8. data/lib/rspec/core/backport_random.rb +35 -3
  9. data/lib/rspec/core/backtrace_formatter.rb +4 -13
  10. data/lib/rspec/core/configuration.rb +330 -114
  11. data/lib/rspec/core/configuration_options.rb +38 -22
  12. data/lib/rspec/core/drb.rb +111 -0
  13. data/lib/rspec/core/dsl.rb +8 -2
  14. data/lib/rspec/core/example.rb +203 -94
  15. data/lib/rspec/core/example_group.rb +344 -316
  16. data/lib/rspec/core/filter_manager.rb +135 -90
  17. data/lib/rspec/core/flat_map.rb +1 -0
  18. data/lib/rspec/core/formatters.rb +50 -14
  19. data/lib/rspec/core/formatters/base_formatter.rb +32 -138
  20. data/lib/rspec/core/formatters/base_text_formatter.rb +32 -253
  21. data/lib/rspec/core/formatters/console_codes.rb +65 -0
  22. data/lib/rspec/core/formatters/deprecation_formatter.rb +24 -15
  23. data/lib/rspec/core/formatters/documentation_formatter.rb +7 -10
  24. data/lib/rspec/core/formatters/helpers.rb +15 -9
  25. data/lib/rspec/core/formatters/html_formatter.rb +17 -16
  26. data/lib/rspec/core/formatters/html_printer.rb +1 -0
  27. data/lib/rspec/core/formatters/json_formatter.rb +18 -20
  28. data/lib/rspec/core/formatters/profile_formatter.rb +67 -0
  29. data/lib/rspec/core/formatters/progress_formatter.rb +6 -7
  30. data/lib/rspec/core/formatters/snippet_extractor.rb +8 -6
  31. data/lib/rspec/core/hooks.rb +131 -125
  32. data/lib/rspec/core/memoized_helpers.rb +31 -26
  33. data/lib/rspec/core/metadata.rb +277 -184
  34. data/lib/rspec/core/metadata_filter.rb +86 -0
  35. data/lib/rspec/core/minitest_assertions_adapter.rb +28 -0
  36. data/lib/rspec/core/mocking_adapters/flexmock.rb +1 -1
  37. data/lib/rspec/core/mocking_adapters/mocha.rb +1 -1
  38. data/lib/rspec/core/mocking_adapters/null.rb +1 -1
  39. data/lib/rspec/core/mocking_adapters/rr.rb +2 -1
  40. data/lib/rspec/core/mocking_adapters/rspec.rb +1 -1
  41. data/lib/rspec/core/notifications.rb +435 -24
  42. data/lib/rspec/core/option_parser.rb +16 -25
  43. data/lib/rspec/core/ordering.rb +3 -1
  44. data/lib/rspec/core/pending.rb +57 -33
  45. data/lib/rspec/core/project_initializer.rb +2 -0
  46. data/lib/rspec/core/project_initializer/spec_helper.rb +5 -4
  47. data/lib/rspec/core/rake_task.rb +45 -20
  48. data/lib/rspec/core/reporter.rb +50 -22
  49. data/lib/rspec/core/ruby_project.rb +1 -0
  50. data/lib/rspec/core/runner.rb +93 -39
  51. data/lib/rspec/core/shared_context.rb +7 -5
  52. data/lib/rspec/core/shared_example_group.rb +85 -77
  53. data/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
  54. data/lib/rspec/core/version.rb +3 -1
  55. data/lib/rspec/core/warnings.rb +35 -17
  56. data/lib/rspec/core/world.rb +57 -5
  57. metadata +56 -369
  58. metadata.gz.sig +3 -3
  59. data/features/README.md +0 -13
  60. data/features/Upgrade.md +0 -352
  61. data/features/command_line/README.md +0 -25
  62. data/features/command_line/dry_run.feature +0 -29
  63. data/features/command_line/example_name_option.feature +0 -97
  64. data/features/command_line/exit_status.feature +0 -82
  65. data/features/command_line/fail_fast.feature +0 -26
  66. data/features/command_line/format_option.feature +0 -75
  67. data/features/command_line/init.feature +0 -57
  68. data/features/command_line/line_number_appended_to_path.feature +0 -140
  69. data/features/command_line/line_number_option.feature +0 -58
  70. data/features/command_line/order.feature +0 -25
  71. data/features/command_line/pattern_option.feature +0 -49
  72. data/features/command_line/rake_task.feature +0 -122
  73. data/features/command_line/randomization.feature +0 -63
  74. data/features/command_line/require_option.feature +0 -43
  75. data/features/command_line/ruby.feature +0 -23
  76. data/features/command_line/tag.feature +0 -98
  77. data/features/command_line/warnings_option.feature +0 -29
  78. data/features/configuration/alias_example_to.feature +0 -39
  79. data/features/configuration/backtrace_exclusion_patterns.feature +0 -105
  80. data/features/configuration/custom_settings.feature +0 -84
  81. data/features/configuration/default_path.feature +0 -38
  82. data/features/configuration/deprecation_stream.feature +0 -58
  83. data/features/configuration/enable_global_dsl.feature +0 -54
  84. data/features/configuration/fail_fast.feature +0 -77
  85. data/features/configuration/failure_exit_code.feature +0 -36
  86. data/features/configuration/order_and_seed.feature +0 -3
  87. data/features/configuration/output_stream.feature +0 -24
  88. data/features/configuration/overriding_global_ordering.feature +0 -93
  89. data/features/configuration/pattern.feature +0 -38
  90. data/features/configuration/profile.feature +0 -220
  91. data/features/configuration/read_options_from_file.feature +0 -90
  92. data/features/configuration/run_all_when_everything_filtered.feature +0 -76
  93. data/features/example_groups/aliasing.feature +0 -48
  94. data/features/example_groups/basic_structure.feature +0 -55
  95. data/features/example_groups/shared_context.feature +0 -74
  96. data/features/example_groups/shared_examples.feature +0 -286
  97. data/features/expectation_framework_integration/configure_expectation_framework.feature +0 -102
  98. data/features/filtering/exclusion_filters.feature +0 -135
  99. data/features/filtering/if_and_unless.feature +0 -138
  100. data/features/filtering/inclusion_filters.feature +0 -101
  101. data/features/formatters/configurable_colors.feature +0 -31
  102. data/features/formatters/custom_formatter.feature +0 -68
  103. data/features/formatters/json_formatter.feature +0 -30
  104. data/features/formatters/regression_tests.feature +0 -95
  105. data/features/formatters/text_formatter.feature +0 -46
  106. data/features/helper_methods/arbitrary_methods.feature +0 -40
  107. data/features/helper_methods/let.feature +0 -50
  108. data/features/helper_methods/modules.feature +0 -146
  109. data/features/hooks/around_hooks.feature +0 -344
  110. data/features/hooks/before_and_after_hooks.feature +0 -427
  111. data/features/hooks/filtering.feature +0 -232
  112. data/features/metadata/current_example.feature +0 -56
  113. data/features/metadata/described_class.feature +0 -17
  114. data/features/metadata/user_defined.feature +0 -100
  115. data/features/mock_framework_integration/use_any_framework.feature +0 -106
  116. data/features/mock_framework_integration/use_flexmock.feature +0 -94
  117. data/features/mock_framework_integration/use_mocha.feature +0 -95
  118. data/features/mock_framework_integration/use_rr.feature +0 -96
  119. data/features/mock_framework_integration/use_rspec.feature +0 -95
  120. data/features/pending_and_skipped_examples/README.md +0 -3
  121. data/features/pending_and_skipped_examples/pending_examples.feature +0 -118
  122. data/features/pending_and_skipped_examples/skipped_examples.feature +0 -106
  123. data/features/spec_files/arbitrary_file_suffix.feature +0 -13
  124. data/features/step_definitions/additional_cli_steps.rb +0 -83
  125. data/features/subject/explicit_subject.feature +0 -101
  126. data/features/subject/implicit_subject.feature +0 -63
  127. data/features/subject/one_liner_syntax.feature +0 -71
  128. data/features/support/env.rb +0 -21
  129. data/features/support/require_expect_syntax_in_aruba_specs.rb +0 -16
  130. data/features/support/rubinius.rb +0 -6
  131. data/lib/rspec/core/command_line.rb +0 -35
  132. data/lib/rspec/core/drb_command_line.rb +0 -26
  133. data/lib/rspec/core/drb_options.rb +0 -87
  134. data/lib/rspec/core/formatters/legacy_formatter.rb +0 -227
  135. data/lib/rspec/core/shared_example_group/collection.rb +0 -27
  136. data/spec/command_line/order_spec.rb +0 -211
  137. data/spec/rspec/core/backtrace_formatter_spec.rb +0 -230
  138. data/spec/rspec/core/command_line_spec.rb +0 -112
  139. data/spec/rspec/core/command_line_spec_output.txt +0 -0
  140. data/spec/rspec/core/configuration_options_spec.rb +0 -409
  141. data/spec/rspec/core/configuration_spec.rb +0 -1479
  142. data/spec/rspec/core/drb_command_line_spec.rb +0 -102
  143. data/spec/rspec/core/drb_options_spec.rb +0 -193
  144. data/spec/rspec/core/dsl_spec.rb +0 -88
  145. data/spec/rspec/core/example_group_spec.rb +0 -1533
  146. data/spec/rspec/core/example_spec.rb +0 -642
  147. data/spec/rspec/core/filter_manager_spec.rb +0 -229
  148. data/spec/rspec/core/formatters/base_formatter_spec.rb +0 -64
  149. data/spec/rspec/core/formatters/base_text_formatter_spec.rb +0 -303
  150. data/spec/rspec/core/formatters/deprecation_formatter_spec.rb +0 -208
  151. data/spec/rspec/core/formatters/documentation_formatter_spec.rb +0 -75
  152. data/spec/rspec/core/formatters/helpers_spec.rb +0 -104
  153. data/spec/rspec/core/formatters/html_formatted-2.1.0.html +0 -392
  154. data/spec/rspec/core/formatters/html_formatted.html +0 -397
  155. data/spec/rspec/core/formatters/html_formatter_spec.rb +0 -122
  156. data/spec/rspec/core/formatters/json_formatter_spec.rb +0 -206
  157. data/spec/rspec/core/formatters/legacy_formatter_spec.rb +0 -137
  158. data/spec/rspec/core/formatters/progress_formatter_spec.rb +0 -43
  159. data/spec/rspec/core/formatters/snippet_extractor_spec.rb +0 -26
  160. data/spec/rspec/core/formatters_spec.rb +0 -120
  161. data/spec/rspec/core/hooks_filtering_spec.rb +0 -227
  162. data/spec/rspec/core/hooks_spec.rb +0 -294
  163. data/spec/rspec/core/memoized_helpers_spec.rb +0 -495
  164. data/spec/rspec/core/metadata_spec.rb +0 -491
  165. data/spec/rspec/core/option_parser_spec.rb +0 -262
  166. data/spec/rspec/core/ordering_spec.rb +0 -102
  167. data/spec/rspec/core/pending_example_spec.rb +0 -117
  168. data/spec/rspec/core/pending_spec.rb +0 -8
  169. data/spec/rspec/core/project_initializer_spec.rb +0 -73
  170. data/spec/rspec/core/rake_task_spec.rb +0 -146
  171. data/spec/rspec/core/random_spec.rb +0 -47
  172. data/spec/rspec/core/reporter_spec.rb +0 -155
  173. data/spec/rspec/core/resources/a_bar.rb +0 -0
  174. data/spec/rspec/core/resources/a_foo.rb +0 -0
  175. data/spec/rspec/core/resources/a_spec.rb +0 -1
  176. data/spec/rspec/core/resources/custom_example_group_runner.rb +0 -14
  177. data/spec/rspec/core/resources/formatter_specs.rb +0 -58
  178. data/spec/rspec/core/resources/utf8_encoded.rb +0 -8
  179. data/spec/rspec/core/rspec_matchers_spec.rb +0 -45
  180. data/spec/rspec/core/ruby_project_spec.rb +0 -26
  181. data/spec/rspec/core/runner_spec.rb +0 -151
  182. data/spec/rspec/core/shared_context_spec.rb +0 -102
  183. data/spec/rspec/core/shared_example_group/collection_spec.rb +0 -57
  184. data/spec/rspec/core/shared_example_group_spec.rb +0 -114
  185. data/spec/rspec/core/warnings_spec.rb +0 -29
  186. data/spec/rspec/core/world_spec.rb +0 -142
  187. data/spec/rspec/core_spec.rb +0 -91
  188. data/spec/spec_helper.rb +0 -160
  189. data/spec/support/config_options_helper.rb +0 -13
  190. data/spec/support/formatter_support.rb +0 -83
  191. data/spec/support/helper_methods.rb +0 -26
  192. data/spec/support/isolate_load_path_mutation.rb +0 -5
  193. data/spec/support/isolated_directory.rb +0 -10
  194. data/spec/support/isolated_home_directory.rb +0 -16
  195. data/spec/support/legacy_formatter_using_sub_classing_example.rb +0 -87
  196. data/spec/support/matchers.rb +0 -85
  197. data/spec/support/mathn_integration_support.rb +0 -12
  198. data/spec/support/old_style_formatter_example.rb +0 -69
  199. data/spec/support/shared_example_groups.rb +0 -13
  200. data/spec/support/spec_files.rb +0 -44
  201. data/spec/support/stderr_splitter.rb +0 -36
@@ -1,262 +0,0 @@
1
- require "spec_helper"
2
-
3
- module RSpec::Core
4
- RSpec.describe OptionParser do
5
- let(:output_file){ mock File }
6
-
7
- before do
8
- allow(RSpec).to receive(:deprecate)
9
- allow(File).to receive(:open).with("foo.txt",'w') { (output_file) }
10
- end
11
-
12
- it "does not parse empty args" do
13
- parser = Parser.new
14
- expect(OptionParser).not_to receive(:new)
15
- parser.parse([])
16
- end
17
-
18
- it "proposes you to use --help and returns an error on incorrect argument" do
19
- parser = Parser.new
20
- option = "--my_wrong_arg"
21
-
22
- expect(parser).to receive(:abort) do |msg|
23
- expect(msg).to include('use --help', option)
24
- end
25
-
26
- parser.parse([option])
27
- end
28
-
29
- {
30
- '--init' => ['-i','--I'],
31
- '--default-path' => ['-d'],
32
- '--dry-run' => ['-d'],
33
- '--drb-port' => ['-d'],
34
- }.each do |long, shorts|
35
- shorts.each do |option|
36
- it "won't parse #{option} as a shorthand for #{long}" do
37
- parser = Parser.new
38
-
39
- expect(parser).to receive(:abort) do |msg|
40
- expect(msg).to include('use --help', option)
41
- end
42
-
43
- parser.parse([option])
44
- end
45
- end
46
- end
47
-
48
- describe "--default_path" do
49
- it "gets converted to --default-path" do
50
- options = Parser.parse(%w[--default_path foo])
51
- expect(options[:default_path]).to eq "foo"
52
- end
53
- end
54
-
55
- describe "--line_number" do
56
- it "gets converted to --line-number" do
57
- options = Parser.parse(%w[--line_number 3])
58
- expect(options[:line_numbers]).to eq ["3"]
59
- end
60
- end
61
-
62
-
63
- describe "--default-path" do
64
- it "sets the default path where RSpec looks for examples" do
65
- options = Parser.parse(%w[--default-path foo])
66
- expect(options[:default_path]).to eq "foo"
67
- end
68
- end
69
-
70
- %w[--line-number -l].each do |option|
71
- describe option do
72
- it "sets the line number of an example to run" do
73
- options = Parser.parse([option, "3"])
74
- expect(options[:line_numbers]).to eq ["3"]
75
- end
76
- end
77
- end
78
-
79
- %w[--format -f].each do |option|
80
- describe option do
81
- it "defines the formatter" do
82
- options = Parser.parse([option, 'doc'])
83
- expect(options[:formatters].first).to eq(["doc"])
84
- end
85
- end
86
- end
87
-
88
- %w[--out -o].each do |option|
89
- describe option do
90
- let(:options) { Parser.parse([option, 'out.txt']) }
91
-
92
- it "sets the output stream for the formatter" do
93
- expect(options[:formatters].last).to eq(['progress', 'out.txt'])
94
- end
95
-
96
- context "with multiple formatters" do
97
- context "after last formatter" do
98
- it "sets the output stream for the last formatter" do
99
- options = Parser.parse(['-f', 'progress', '-f', 'doc', option, 'out.txt'])
100
- expect(options[:formatters][0]).to eq(['progress'])
101
- expect(options[:formatters][1]).to eq(['doc', 'out.txt'])
102
- end
103
- end
104
-
105
- context "after first formatter" do
106
- it "sets the output stream for the first formatter" do
107
- options = Parser.parse(['-f', 'progress', option, 'out.txt', '-f', 'doc'])
108
- expect(options[:formatters][0]).to eq(['progress', 'out.txt'])
109
- expect(options[:formatters][1]).to eq(['doc'])
110
- end
111
- end
112
- end
113
- end
114
- end
115
-
116
- %w[--example -e].each do |option|
117
- describe option do
118
- it "escapes the arg" do
119
- options = Parser.parse([option, "this (and that)"])
120
- expect(options[:full_description].length).to eq(1)
121
- expect("this (and that)").to match(options[:full_description].first)
122
- end
123
- end
124
- end
125
-
126
- %w[--pattern -P].each do |option|
127
- describe option do
128
- it "sets the filename pattern" do
129
- options = Parser.parse([option, 'spec/**/*.spec'])
130
- expect(options[:pattern]).to eq('spec/**/*.spec')
131
- end
132
- end
133
- end
134
-
135
- %w[--tag -t].each do |option|
136
- describe option do
137
- context "without ~" do
138
- it "treats no value as true" do
139
- options = Parser.parse([option, 'foo'])
140
- expect(options[:inclusion_filter]).to eq(:foo => true)
141
- end
142
-
143
- it "treats 'true' as true" do
144
- options = Parser.parse([option, 'foo:true'])
145
- expect(options[:inclusion_filter]).to eq(:foo => true)
146
- end
147
-
148
- it "treats 'nil' as nil" do
149
- options = Parser.parse([option, 'foo:nil'])
150
- expect(options[:inclusion_filter]).to eq(:foo => nil)
151
- end
152
-
153
- it "treats 'false' as false" do
154
- options = Parser.parse([option, 'foo:false'])
155
- expect(options[:inclusion_filter]).to eq(:foo => false)
156
- end
157
-
158
- it "merges muliple invocations" do
159
- options = Parser.parse([option, 'foo:false', option, 'bar:true', option, 'foo:true'])
160
- expect(options[:inclusion_filter]).to eq(:foo => true, :bar => true)
161
- end
162
-
163
- it "treats 'any_string' as 'any_string'" do
164
- options = Parser.parse([option, 'foo:any_string'])
165
- expect(options[:inclusion_filter]).to eq(:foo => 'any_string')
166
- end
167
-
168
- it "treats ':any_sym' as :any_sym" do
169
- options = Parser.parse([option, 'foo::any_sym'])
170
- expect(options[:inclusion_filter]).to eq(:foo => :any_sym)
171
- end
172
-
173
- it "treats '42' as 42" do
174
- options = Parser.parse([option, 'foo:42'])
175
- expect(options[:inclusion_filter]).to eq(:foo => 42)
176
- end
177
-
178
- it "treats '3.146' as 3.146" do
179
- options = Parser.parse([option, 'foo:3.146'])
180
- expect(options[:inclusion_filter]).to eq(:foo => 3.146)
181
- end
182
- end
183
-
184
- context "with ~" do
185
- it "treats no value as true" do
186
- options = Parser.parse([option, '~foo'])
187
- expect(options[:exclusion_filter]).to eq(:foo => true)
188
- end
189
-
190
- it "treats 'true' as true" do
191
- options = Parser.parse([option, '~foo:true'])
192
- expect(options[:exclusion_filter]).to eq(:foo => true)
193
- end
194
-
195
- it "treats 'nil' as nil" do
196
- options = Parser.parse([option, '~foo:nil'])
197
- expect(options[:exclusion_filter]).to eq(:foo => nil)
198
- end
199
-
200
- it "treats 'false' as false" do
201
- options = Parser.parse([option, '~foo:false'])
202
- expect(options[:exclusion_filter]).to eq(:foo => false)
203
- end
204
- end
205
- end
206
- end
207
-
208
- describe "--order" do
209
- it "is nil by default" do
210
- expect(Parser.parse([])[:order]).to be_nil
211
- end
212
-
213
- %w[rand random].each do |option|
214
- context "with #{option}" do
215
- it "defines the order as random" do
216
- options = Parser.parse(['--order', option])
217
- expect(options[:order]).to eq(option)
218
- end
219
- end
220
- end
221
- end
222
-
223
- describe "--seed" do
224
- it "sets the order to rand:SEED" do
225
- options = Parser.parse(%w[--seed 123])
226
- expect(options[:order]).to eq("rand:123")
227
- end
228
- end
229
-
230
- describe '--profile' do
231
- it 'sets profile_examples to true by default' do
232
- options = Parser.parse(%w[--profile])
233
- expect(options[:profile_examples]).to eq true
234
- end
235
-
236
- it 'sets profile_examples to supplied int' do
237
- options = Parser.parse(%w[--profile 10])
238
- expect(options[:profile_examples]).to eq 10
239
- end
240
-
241
- it 'sets profile_examples to true when accidentally combined with path' do
242
- allow_warning
243
- options = Parser.parse(%w[--profile some/path])
244
- expect(options[:profile_examples]).to eq true
245
- end
246
-
247
- it 'warns when accidentally combined with path' do
248
- expect_warning_without_call_site "Non integer specified as profile count"
249
- options = Parser.parse(%w[--profile some/path])
250
- expect(options[:profile_examples]).to eq true
251
- end
252
- end
253
-
254
- describe '--warning' do
255
- it 'enables warnings' do
256
- options = Parser.parse(%w[--warnings])
257
- expect(options[:warnings]).to eq true
258
- end
259
- end
260
-
261
- end
262
- end
@@ -1,102 +0,0 @@
1
- require "spec_helper"
2
-
3
- module RSpec
4
- module Core
5
- module Ordering
6
- RSpec.describe Identity do
7
- it "does not affect the ordering of the items" do
8
- expect(Identity.new.order([1, 2, 3])).to eq([1, 2, 3])
9
- end
10
- end
11
-
12
- RSpec.describe Random do
13
- describe '.order' do
14
- subject { described_class.new(configuration) }
15
-
16
- let(:configuration) { RSpec::Core::Configuration.new }
17
- let(:items) { 10.times.map { |n| n } }
18
- let(:shuffled_items) { subject.order items }
19
-
20
- it 'shuffles the items randomly' do
21
- expect(shuffled_items).to match_array items
22
- expect(shuffled_items).to_not eq items
23
- end
24
-
25
- context 'given multiple calls' do
26
- it 'returns the items in the same order' do
27
- expect(subject.order(items)).to eq shuffled_items
28
- end
29
- end
30
-
31
- context 'given randomization has been seeded explicitly' do
32
- before { @seed = srand }
33
- after { srand @seed }
34
-
35
- it "does not affect the global random number generator" do
36
- srand 123
37
- val1, val2 = rand(1_000), rand(1_000)
38
-
39
- subject
40
-
41
- srand 123
42
- subject.order items
43
- expect(rand(1_000)).to eq(val1)
44
- subject.order items
45
- expect(rand(1_000)).to eq(val2)
46
- end
47
- end
48
- end
49
- end
50
-
51
- RSpec.describe Custom do
52
- it 'uses the block to order the list' do
53
- strategy = Custom.new(proc { |list| list.reverse })
54
-
55
- expect(strategy.order([1, 2, 3, 4])).to eq([4, 3, 2, 1])
56
- end
57
- end
58
-
59
- RSpec.describe Registry do
60
- let(:configuration) { Configuration.new }
61
- subject(:registry) { Registry.new(configuration) }
62
-
63
- describe "#used_random_seed?" do
64
- it 'returns false if the random orderer has not been used' do
65
- expect(registry.used_random_seed?).to be false
66
- end
67
-
68
- it 'returns false if the random orderer has been fetched but not used' do
69
- expect(registry.fetch(:random)).to be_a(Random)
70
- expect(registry.used_random_seed?).to be false
71
- end
72
-
73
- it 'returns true if the random orderer has been used' do
74
- registry.fetch(:random).order([1, 2])
75
- expect(registry.used_random_seed?).to be true
76
- end
77
- end
78
-
79
- describe "#fetch" do
80
- it "gives the registered ordering when called with a symbol" do
81
- ordering = Object.new
82
- subject.register(:falcon, ordering)
83
-
84
- expect(subject.fetch(:falcon)).to be ordering
85
- end
86
-
87
- context "when given an unrecognized symbol" do
88
- it 'invokes the given block and returns its value' do
89
- expect(subject.fetch(:falcon) { :fallback }).to eq(:fallback)
90
- end
91
-
92
- it 'raises an error if no block is given' do
93
- expect {
94
- subject.fetch(:falcon)
95
- }.to raise_error(IndexError)
96
- end
97
- end
98
- end
99
- end
100
- end
101
- end
102
- end
@@ -1,117 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe "an example" do
4
- context "declared pending with metadata" do
5
- it "uses the value assigned to :pending as the message" do
6
- group = RSpec::Core::ExampleGroup.describe('group') do
7
- example "example", :pending => 'just because' do
8
- fail
9
- end
10
- end
11
- example = group.examples.first
12
- example.run(group.new, double.as_null_object)
13
- expect(example).to be_pending_with('just because')
14
- end
15
-
16
- it "sets the message to 'No reason given' if :pending => true" do
17
- group = RSpec::Core::ExampleGroup.describe('group') do
18
- example "example", :pending => true do
19
- fail
20
- end
21
- end
22
- example = group.examples.first
23
- example.run(group.new, double.as_null_object)
24
- expect(example).to be_pending_with('No reason given')
25
- end
26
- end
27
-
28
- context "with no block" do
29
- it "is listed as pending with 'Not yet implemented'" do
30
- group = RSpec::Core::ExampleGroup.describe('group') do
31
- it "has no block"
32
- end
33
- example = group.examples.first
34
- example.run(group.new, double.as_null_object)
35
- expect(example).to be_skipped_with('Not yet implemented')
36
- end
37
- end
38
-
39
- context "with no args" do
40
- it "is listed as pending with the default message" do
41
- group = RSpec::Core::ExampleGroup.describe('group') do
42
- it "does something" do
43
- pending
44
- fail
45
- end
46
- end
47
- example = group.examples.first
48
- example.run(group.new, double.as_null_object)
49
- expect(example).to be_pending_with(RSpec::Core::Pending::NO_REASON_GIVEN)
50
- end
51
-
52
- it "fails when the rest of the example passes" do
53
- called = false
54
- group = RSpec::Core::ExampleGroup.describe('group') do
55
- it "does something" do
56
- pending
57
- called = true
58
- end
59
- end
60
-
61
- example = group.examples.first
62
- example.run(group.new, double.as_null_object)
63
- expect(called).to eq(true)
64
- result = example.metadata[:execution_result]
65
- expect(result[:pending_fixed]).to eq(true)
66
- expect(result[:status]).to eq("failed")
67
- end
68
- end
69
-
70
- context "with no docstring" do
71
- context "declared with the pending method" do
72
- it "does not have an auto-generated description" do
73
- group = RSpec::Core::ExampleGroup.describe('group') do
74
- it "checks something" do
75
- expect((3+4)).to eq(7)
76
- end
77
- pending do
78
- expect("string".reverse).to eq("gnirts")
79
- end
80
- end
81
- example = group.examples.last
82
- example.run(group.new, double.as_null_object)
83
- expect(example.description).to match(/example at/)
84
- end
85
- end
86
-
87
- context "after another example with some assertion" do
88
- it "does not show any message" do
89
- group = RSpec::Core::ExampleGroup.describe('group') do
90
- it "checks something" do
91
- expect((3+4)).to eq(7)
92
- end
93
- specify do
94
- pending
95
- end
96
- end
97
- example = group.examples.last
98
- example.run(group.new, double.as_null_object)
99
- expect(example.description).to match(/example at/)
100
- end
101
- end
102
- end
103
-
104
- context "with a message" do
105
- it "is listed as pending with the supplied message" do
106
- group = RSpec::Core::ExampleGroup.describe('group') do
107
- it "does something" do
108
- pending("just because")
109
- fail
110
- end
111
- end
112
- example = group.examples.first
113
- example.run(group.new, double.as_null_object)
114
- expect(example).to be_pending_with('just because')
115
- end
116
- end
117
- end