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,106 +0,0 @@
1
- Feature: skipped examples
2
-
3
- RSpec offers a number of ways to indicate that an example should be skipped
4
- and not executed.
5
-
6
- Scenario: no implementation provided
7
- Given a file named "example_without_block_spec.rb" with:
8
- """ruby
9
- describe "an example" do
10
- it "is a skipped example"
11
- end
12
- """
13
- When I run `rspec example_without_block_spec.rb`
14
- Then the exit status should be 0
15
- And the output should contain "1 example, 0 failures, 1 pending"
16
- And the output should contain "Not yet implemented"
17
- And the output should contain "example_without_block_spec.rb:2"
18
-
19
- Scenario: skipping using `skip`
20
- Given a file named "skipped_spec.rb" with:
21
- """ruby
22
- describe "an example" do
23
- skip "is skipped" do
24
- end
25
- end
26
- """
27
- When I run `rspec skipped_spec.rb`
28
- Then the exit status should be 0
29
- And the output should contain "1 example, 0 failures, 1 pending"
30
- And the output should contain:
31
- """
32
- Pending:
33
- an example is skipped
34
- # No reason given
35
- # ./skipped_spec.rb:2
36
- """
37
-
38
- Scenario: skipping using `skip` inside an example
39
- Given a file named "skipped_spec.rb" with:
40
- """ruby
41
- describe "an example" do
42
- it "is skipped" do
43
- skip
44
- end
45
- end
46
- """
47
- When I run `rspec skipped_spec.rb`
48
- Then the exit status should be 0
49
- And the output should contain "1 example, 0 failures, 1 pending"
50
- And the output should contain:
51
- """
52
- Pending:
53
- an example is skipped
54
- # No reason given
55
- # ./skipped_spec.rb:2
56
- """
57
-
58
- Scenario: temporarily skipping by prefixing `it`, `specify`, or `example` with an x
59
- Given a file named "temporarily_skipped_spec.rb" with:
60
- """ruby
61
- describe "an example" do
62
- xit "is skipped using xit" do
63
- end
64
-
65
- xspecify "is skipped using xspecify" do
66
- end
67
-
68
- xexample "is skipped using xexample" do
69
- end
70
- end
71
- """
72
- When I run `rspec temporarily_skipped_spec.rb`
73
- Then the exit status should be 0
74
- And the output should contain "3 examples, 0 failures, 3 pending"
75
- And the output should contain:
76
- """
77
- Pending:
78
- an example is skipped using xit
79
- # Temporarily skipped with xit
80
- # ./temporarily_skipped_spec.rb:2
81
- an example is skipped using xspecify
82
- # Temporarily skipped with xspecify
83
- # ./temporarily_skipped_spec.rb:5
84
- an example is skipped using xexample
85
- # Temporarily skipped with xexample
86
- # ./temporarily_skipped_spec.rb:8
87
- """
88
-
89
- Scenario: skipping using metadata
90
- Given a file named "skipped_spec.rb" with:
91
- """ruby
92
- describe "an example" do
93
- example "is skipped", :skip => true do
94
- end
95
- end
96
- """
97
- When I run `rspec skipped_spec.rb`
98
- Then the exit status should be 0
99
- And the output should contain "1 example, 0 failures, 1 pending"
100
- And the output should contain:
101
- """
102
- Pending:
103
- an example is skipped
104
- # No reason given
105
- # ./skipped_spec.rb:2
106
- """
@@ -1,13 +0,0 @@
1
- Feature: arbitrary file suffix
2
-
3
- Scenario: .spec
4
- Given a file named "a.spec" with:
5
- """ruby
6
- describe "something" do
7
- it "does something" do
8
- expect(3).to eq(3)
9
- end
10
- end
11
- """
12
- When I run `rspec a.spec`
13
- Then the examples should all pass
@@ -1,83 +0,0 @@
1
- require 'rspec/core' # to fix annoying "undefined method `configuration' for RSpec:Module (NoMethodError)"
2
-
3
- Then /^the output should contain all of these:$/ do |table|
4
- table.raw.flatten.each do |string|
5
- assert_partial_output(string, all_output)
6
- end
7
- end
8
-
9
- Then /^the output should not contain any of these:$/ do |table|
10
- table.raw.flatten.each do |string|
11
- expect(all_output).not_to match(regexp(string))
12
- end
13
- end
14
-
15
- Then /^the output should contain one of the following:$/ do |table|
16
- matching_output = table.raw.flatten.select do |string|
17
- all_output =~ regexp(string)
18
- end
19
-
20
- expect(matching_output.count).to eq(1)
21
- end
22
-
23
- Then /^the example(?:s)? should(?: all)? pass$/ do
24
- step %q{the output should contain "0 failures"}
25
- step %q{the output should not contain "0 examples"}
26
- step %q{the exit status should be 0}
27
- end
28
-
29
- Then /^the process should succeed even though no examples were run$/ do
30
- step %q{the output should contain "0 examples, 0 failures"}
31
- step %q{the exit status should be 0}
32
- end
33
-
34
- Then /^the backtrace\-normalized output should contain:$/ do |partial_output|
35
- # ruby 1.9 includes additional stuff in the backtrace,
36
- # so we need to normalize it to compare it with our expected output.
37
- normalized_output = all_output.split("\n").map do |line|
38
- line =~ /(^\s+# [^:]+:\d+)/ ? $1 : line # http://rubular.com/r/zDD7DdWyzF
39
- end.join("\n")
40
-
41
- expect(normalized_output).to match(regexp(partial_output))
42
- end
43
-
44
- Then /^the output should not contain any error backtraces$/ do
45
- step %q{the output should not contain "lib/rspec/core"}
46
- end
47
-
48
- # This step can be generalized if it's ever used to test other colors
49
- Then /^the failing example is printed in magenta$/ do
50
- # \e[35m = enable magenta
51
- # \e[0m = reset colors
52
- expect(all_output).to include("\e[35m" + "F" + "\e[0m")
53
- end
54
-
55
- Given /^I have a brand new project with no files$/ do
56
- in_current_dir do
57
- expect(Dir["**/*"]).to eq([])
58
- end
59
- end
60
-
61
- Given /^I have run `([^`]*)`$/ do |cmd|
62
- fail_on_error = true
63
- run_simple(unescape(cmd), fail_on_error)
64
- end
65
-
66
- When "I accept the recommended settings by removing `=begin` and `=end` from `spec/spec_helper.rb`" do
67
- in_current_dir do
68
- spec_helper = File.read("spec/spec_helper.rb")
69
- expect(spec_helper).to include("=begin", "=end")
70
-
71
- to_keep = spec_helper.lines.reject do |line|
72
- line.start_with?("=begin") || line.start_with?("=end")
73
- end
74
-
75
- File.open("spec/spec_helper.rb", "w") { |f| f.write(to_keep.join) }
76
- expect(File.read("spec/spec_helper.rb")).not_to include("=begin", "=end")
77
- end
78
- end
79
-
80
- When /^I create "([^"]*)" with the following content:$/ do |file_name, content|
81
- write_file(file_name, content)
82
- end
83
-
@@ -1,101 +0,0 @@
1
- Feature: explicit subject
2
-
3
- Use `subject` in the group scope to explicitly define the value that is
4
- returned by the `subject` method in the example scope.
5
-
6
- Note that while the examples below demonstrate how `subject` can be used as a
7
- user-facing concept, we recommend that you reserve it for support of custom
8
- matchers and/or extension libraries that hide its use from examples.
9
-
10
- Scenario: subject in top level group
11
- Given a file named "top_level_subject_spec.rb" with:
12
- """ruby
13
- describe Array, "with some elements" do
14
- subject { [1,2,3] }
15
- it "should have the prescribed elements" do
16
- expect(subject).to eq([1,2,3])
17
- end
18
- end
19
- """
20
- When I run `rspec top_level_subject_spec.rb`
21
- Then the examples should all pass
22
-
23
- Scenario: subject in a nested group
24
- Given a file named "nested_subject_spec.rb" with:
25
- """ruby
26
- describe Array do
27
- subject { [1,2,3] }
28
- describe "with some elements" do
29
- it "should have the prescribed elements" do
30
- expect(subject).to eq([1,2,3])
31
- end
32
- end
33
- end
34
- """
35
- When I run `rspec nested_subject_spec.rb`
36
- Then the examples should all pass
37
-
38
- Scenario: access subject from before block
39
- Given a file named "top_level_subject_spec.rb" with:
40
- """ruby
41
- describe Array, "with some elements" do
42
- subject { [] }
43
- before { subject.push(1,2,3) }
44
- it "should have the prescribed elements" do
45
- expect(subject).to eq([1,2,3])
46
- end
47
- end
48
- """
49
- When I run `rspec top_level_subject_spec.rb`
50
- Then the examples should all pass
51
-
52
- Scenario: invoke helper method from subject block
53
- Given a file named "helper_subject_spec.rb" with:
54
- """ruby
55
- describe Array do
56
- def prepared_array; [1,2,3] end
57
- subject { prepared_array }
58
- describe "with some elements" do
59
- it "should have the prescribed elements" do
60
- expect(subject).to eq([1,2,3])
61
- end
62
- end
63
- end
64
- """
65
- When I run `rspec helper_subject_spec.rb`
66
- Then the examples should all pass
67
-
68
- Scenario: subject block is invoked at most once per example
69
- Given a file named "nil_subject_spec.rb" with:
70
- """ruby
71
- describe Array do
72
- describe "#[]" do
73
- context "with index out of bounds" do
74
- before { expect(Array).to receive(:one_two_three).once.and_return([1,2,3]) }
75
- subject { Array.one_two_three[42] }
76
- it { is_expected.to be_nil }
77
- end
78
- end
79
- end
80
- """
81
- When I run `rspec nil_subject_spec.rb`
82
- Then the examples should all pass
83
-
84
- Scenario: subject bang method
85
- Given a file named "subject_bang_spec.rb" with:
86
- """ruby
87
- describe Array do
88
- describe '#pop' do
89
- let(:prepared_array) { [1,2,3] }
90
- subject! { prepared_array.pop }
91
- it "removes the last value from the array" do
92
- expect(prepared_array).to eq([1,2])
93
- end
94
- it "returns the last value of the array" do
95
- expect(subject).to eq(3)
96
- end
97
- end
98
- end
99
- """
100
- When I run `rspec subject_bang_spec.rb`
101
- Then the examples should all pass
@@ -1,63 +0,0 @@
1
- Feature: implicitly defined subject
2
-
3
- If the first argument to the outermost example group is a class, an instance
4
- of that class is exposed to each example via the `subject` method.
5
-
6
- While the examples below demonstrate how `subject` can be used as a
7
- user-facing concept, we recommend that you reserve it for support of custom
8
- matchers and/or extension libraries that hide its use from examples.
9
-
10
- Scenario: subject exposed in top level group
11
- Given a file named "top_level_subject_spec.rb" with:
12
- """ruby
13
- describe Array do
14
- it "should be empty when first created" do
15
- expect(subject).to be_empty
16
- end
17
- end
18
- """
19
- When I run `rspec ./top_level_subject_spec.rb`
20
- Then the examples should all pass
21
-
22
- Scenario: subject in a nested group
23
- Given a file named "nested_subject_spec.rb" with:
24
- """ruby
25
- describe Array do
26
- describe "when first created" do
27
- it "should be empty" do
28
- expect(subject).to be_empty
29
- end
30
- end
31
- end
32
- """
33
- When I run `rspec nested_subject_spec.rb`
34
- Then the examples should all pass
35
-
36
- Scenario: subject in a nested group with a different class (outermost wins)
37
- Given a file named "nested_subject_spec.rb" with:
38
- """ruby
39
- class ArrayWithOneElement < Array
40
- def initialize(*)
41
- super
42
- unshift "first element"
43
- end
44
- end
45
-
46
- describe Array do
47
- describe ArrayWithOneElement do
48
- context "referenced as subject" do
49
- it "should be empty (because it is the Array declared at the top)" do
50
- expect(subject).to be_empty
51
- end
52
- end
53
-
54
- context "created in the example" do
55
- it "should not be empty" do
56
- expect(ArrayWithOneElement.new).not_to be_empty
57
- end
58
- end
59
- end
60
- end
61
- """
62
- When I run `rspec nested_subject_spec.rb`
63
- Then the examples should all pass
@@ -1,71 +0,0 @@
1
- Feature: One-liner syntax
2
-
3
- RSpec supports a one-liner syntax for setting an expectation
4
- on the `subject`. RSpec will give the examples a doc string
5
- that is auto-generated from the matcher used in the example.
6
- This is designed specifically to help avoid duplication in
7
- situations where the doc string and the matcher used in the
8
- example mirror each other exactly. When used excessively,
9
- it can produce documentation output that does not read well
10
- or contribute to understanding the object you are describing.
11
-
12
- This comes in two flavors:
13
-
14
- * `is_expected` is defined simply as `expect(subject)` and is
15
- designed for when you are using rspec-expectations with its
16
- newer expect-based syntax.
17
- * `should` was designed back when rspec-expectations only had
18
- a should-based syntax. However, it continues to be available
19
- and work even if the `:should` syntax is disabled (since that
20
- merely removes `Object#should` but this is
21
- `RSpec::Core::ExampleGroup#should`).
22
-
23
- Note: this feature is only available when using rspec-expectations.
24
-
25
- Scenario: implicit subject
26
- Given a file named "example_spec.rb" with:
27
- """ruby
28
- describe Array do
29
- describe "when first created" do
30
- # Rather than:
31
- # it "should be empty" do
32
- # subject.should be_empty
33
- # end
34
-
35
- it { should be_empty }
36
- # or
37
- it { is_expected.to be_empty }
38
- end
39
- end
40
- """
41
- When I run `rspec example_spec.rb --format doc`
42
- Then the examples should all pass
43
- And the output should contain:
44
- """
45
- Array
46
- when first created
47
- should be empty
48
- should be empty
49
- """
50
-
51
- Scenario: explicit subject
52
- Given a file named "example_spec.rb" with:
53
- """ruby
54
- describe Array do
55
- describe "with 3 items" do
56
- subject { [1,2,3] }
57
- it { should_not be_empty }
58
- # or
59
- it { is_expected.not_to be_empty }
60
- end
61
- end
62
- """
63
- When I run `rspec example_spec.rb --format doc`
64
- Then the examples should all pass
65
- And the output should contain:
66
- """
67
- Array
68
- with 3 items
69
- should not be empty
70
- should not be empty
71
- """
@@ -1,21 +0,0 @@
1
- require 'aruba/cucumber'
2
-
3
- Before do
4
- if RUBY_PLATFORM =~ /java/ || defined?(Rubinius)
5
- @aruba_timeout_seconds = 60
6
- else
7
- @aruba_timeout_seconds = 10
8
- end
9
- end
10
-
11
- Aruba.configure do |config|
12
- config.before_cmd do |cmd|
13
- set_env('JRUBY_OPTS', "-X-C #{ENV['JRUBY_OPTS']}") # disable JIT since these processes are so short lived
14
- end
15
- end if RUBY_PLATFORM == 'java'
16
-
17
- Aruba.configure do |config|
18
- config.before_cmd do |cmd|
19
- set_env('RBXOPT', "-Xint=true #{ENV['RBXOPT']}") # disable JIT since these processes are so short lived
20
- end
21
- end if defined?(Rubinius)