rspec-core 3.0.0.beta2 → 3.0.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 (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