rspec-core 3.0.0.beta1 → 3.0.0.beta2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (145) hide show
  1. data.tar.gz.sig +0 -0
  2. data/Changelog.md +137 -0
  3. data/README.md +2 -2
  4. data/exe/rspec +2 -23
  5. data/features/README.md +1 -5
  6. data/features/command_line/README.md +7 -10
  7. data/features/command_line/exit_status.feature +1 -1
  8. data/features/command_line/format_option.feature +1 -1
  9. data/features/command_line/init.feature +40 -1
  10. data/features/command_line/line_number_option.feature +2 -2
  11. data/features/command_line/ruby.feature +5 -4
  12. data/features/configuration/enable_global_dsl.feature +54 -0
  13. data/features/example_groups/aliasing.feature +48 -0
  14. data/features/example_groups/basic_structure.feature +1 -1
  15. data/features/expectation_framework_integration/configure_expectation_framework.feature +1 -1
  16. data/features/filtering/if_and_unless.feature +0 -30
  17. data/features/formatters/custom_formatter.feature +32 -0
  18. data/features/formatters/regression_tests.feature +95 -0
  19. data/features/hooks/around_hooks.feature +1 -0
  20. data/features/hooks/before_and_after_hooks.feature +2 -2
  21. data/features/mock_framework_integration/use_flexmock.feature +11 -13
  22. data/features/mock_framework_integration/use_mocha.feature +11 -13
  23. data/features/mock_framework_integration/use_rr.feature +11 -13
  24. data/features/mock_framework_integration/use_rspec.feature +11 -13
  25. data/features/pending_and_skipped_examples/README.md +3 -0
  26. data/features/pending_and_skipped_examples/pending_examples.feature +118 -0
  27. data/features/pending_and_skipped_examples/skipped_examples.feature +106 -0
  28. data/features/step_definitions/additional_cli_steps.rb +34 -0
  29. data/features/subject/explicit_subject.feature +1 -1
  30. data/features/subject/one_liner_syntax.feature +71 -0
  31. data/lib/rspec/core.rb +6 -14
  32. data/lib/rspec/core/backtrace_formatter.rb +16 -4
  33. data/lib/rspec/core/command_line.rb +2 -3
  34. data/lib/rspec/core/configuration.rb +114 -125
  35. data/lib/rspec/core/configuration_options.rb +32 -18
  36. data/lib/rspec/core/dsl.rb +80 -18
  37. data/lib/rspec/core/example.rb +84 -33
  38. data/lib/rspec/core/example_group.rb +95 -43
  39. data/lib/rspec/core/filter_manager.rb +31 -40
  40. data/lib/rspec/core/formatters.rb +137 -0
  41. data/lib/rspec/core/formatters/base_formatter.rb +28 -41
  42. data/lib/rspec/core/formatters/base_text_formatter.rb +26 -37
  43. data/lib/rspec/core/formatters/deprecation_formatter.rb +48 -27
  44. data/lib/rspec/core/formatters/documentation_formatter.rb +27 -22
  45. data/lib/rspec/core/formatters/html_formatter.rb +48 -56
  46. data/lib/rspec/core/formatters/html_printer.rb +11 -18
  47. data/lib/rspec/core/formatters/json_formatter.rb +18 -22
  48. data/lib/rspec/core/formatters/legacy_formatter.rb +227 -0
  49. data/lib/rspec/core/formatters/progress_formatter.rb +7 -10
  50. data/lib/rspec/core/hooks.rb +250 -217
  51. data/lib/rspec/core/memoized_helpers.rb +43 -9
  52. data/lib/rspec/core/mocking_adapters/flexmock.rb +29 -0
  53. data/lib/rspec/core/{mocking/with_mocha.rb → mocking_adapters/mocha.rb} +19 -16
  54. data/lib/rspec/core/mocking_adapters/null.rb +12 -0
  55. data/lib/rspec/core/mocking_adapters/rr.rb +28 -0
  56. data/lib/rspec/core/mocking_adapters/rspec.rb +30 -0
  57. data/lib/rspec/core/notifications.rb +100 -0
  58. data/lib/rspec/core/option_parser.rb +11 -18
  59. data/lib/rspec/core/pending.rb +78 -47
  60. data/lib/rspec/core/project_initializer.rb +2 -49
  61. data/lib/rspec/core/project_initializer/dot_rspec +3 -0
  62. data/lib/rspec/core/project_initializer/spec_helper.rb +82 -0
  63. data/lib/rspec/core/rake_task.rb +5 -14
  64. data/lib/rspec/core/reporter.rb +24 -32
  65. data/lib/rspec/core/ruby_project.rb +1 -1
  66. data/lib/rspec/core/runner.rb +14 -4
  67. data/lib/rspec/core/shared_example_group.rb +40 -13
  68. data/lib/rspec/core/version.rb +1 -1
  69. data/spec/command_line/order_spec.rb +15 -15
  70. data/spec/rspec/core/backtrace_formatter_spec.rb +15 -1
  71. data/spec/rspec/core/command_line_spec.rb +18 -17
  72. data/spec/rspec/core/configuration_options_spec.rb +57 -34
  73. data/spec/rspec/core/configuration_spec.rb +162 -184
  74. data/spec/rspec/core/drb_command_line_spec.rb +5 -7
  75. data/spec/rspec/core/drb_options_spec.rb +2 -2
  76. data/spec/rspec/core/dsl_spec.rb +79 -15
  77. data/spec/rspec/core/example_group_spec.rb +253 -39
  78. data/spec/rspec/core/example_spec.rb +149 -33
  79. data/spec/rspec/core/filter_manager_spec.rb +9 -26
  80. data/spec/rspec/core/formatters/base_formatter_spec.rb +2 -5
  81. data/spec/rspec/core/formatters/base_text_formatter_spec.rb +42 -145
  82. data/spec/rspec/core/formatters/deprecation_formatter_spec.rb +64 -34
  83. data/spec/rspec/core/formatters/documentation_formatter_spec.rb +15 -28
  84. data/spec/rspec/core/formatters/helpers_spec.rb +2 -2
  85. data/spec/rspec/core/formatters/{html_formatted-1.8.7.html → html_formatted-2.1.0.html} +22 -44
  86. data/spec/rspec/core/formatters/{html_formatted-1.8.7-jruby.html → html_formatted.html} +30 -49
  87. data/spec/rspec/core/formatters/html_formatter_spec.rb +35 -19
  88. data/spec/rspec/core/formatters/json_formatter_spec.rb +42 -40
  89. data/spec/rspec/core/formatters/legacy_formatter_spec.rb +137 -0
  90. data/spec/rspec/core/formatters/progress_formatter_spec.rb +38 -25
  91. data/spec/rspec/core/formatters/snippet_extractor_spec.rb +1 -1
  92. data/spec/rspec/core/formatters_spec.rb +120 -0
  93. data/spec/rspec/core/hooks_filtering_spec.rb +1 -1
  94. data/spec/rspec/core/hooks_spec.rb +13 -2
  95. data/spec/rspec/core/memoized_helpers_spec.rb +17 -8
  96. data/spec/rspec/core/metadata_spec.rb +3 -3
  97. data/spec/rspec/core/option_parser_spec.rb +53 -46
  98. data/spec/rspec/core/ordering_spec.rb +4 -4
  99. data/spec/rspec/core/pending_example_spec.rb +23 -126
  100. data/spec/rspec/core/pending_spec.rb +8 -0
  101. data/spec/rspec/core/project_initializer_spec.rb +8 -41
  102. data/spec/rspec/core/rake_task_spec.rb +15 -4
  103. data/spec/rspec/core/random_spec.rb +1 -1
  104. data/spec/rspec/core/reporter_spec.rb +50 -37
  105. data/spec/rspec/core/resources/formatter_specs.rb +9 -11
  106. data/spec/rspec/core/rspec_matchers_spec.rb +1 -1
  107. data/spec/rspec/core/ruby_project_spec.rb +3 -3
  108. data/spec/rspec/core/runner_spec.rb +65 -23
  109. data/spec/rspec/core/shared_context_spec.rb +4 -4
  110. data/spec/rspec/core/shared_example_group/collection_spec.rb +1 -1
  111. data/spec/rspec/core/shared_example_group_spec.rb +20 -11
  112. data/spec/rspec/core/warnings_spec.rb +1 -1
  113. data/spec/rspec/core/world_spec.rb +10 -10
  114. data/spec/rspec/core_spec.rb +2 -2
  115. data/spec/spec_helper.rb +12 -24
  116. data/spec/support/config_options_helper.rb +1 -3
  117. data/spec/support/formatter_support.rb +83 -0
  118. data/spec/support/isolate_load_path_mutation.rb +1 -2
  119. data/spec/support/isolated_directory.rb +1 -1
  120. data/spec/support/isolated_home_directory.rb +1 -1
  121. data/spec/support/legacy_formatter_using_sub_classing_example.rb +87 -0
  122. data/spec/support/matchers.rb +20 -0
  123. data/spec/support/mathn_integration_support.rb +2 -2
  124. data/spec/support/old_style_formatter_example.rb +69 -0
  125. data/spec/support/shared_example_groups.rb +1 -1
  126. data/spec/support/spec_files.rb +3 -3
  127. metadata +192 -69
  128. metadata.gz.sig +3 -1
  129. checksums.yaml +0 -15
  130. checksums.yaml.gz.sig +0 -2
  131. data/features/configuration/show_failures_in_pending_blocks.feature +0 -61
  132. data/features/pending/pending_examples.feature +0 -229
  133. data/features/subject/implicit_receiver.feature +0 -29
  134. data/lib/rspec/core/mocking/with_absolutely_nothing.rb +0 -11
  135. data/lib/rspec/core/mocking/with_flexmock.rb +0 -27
  136. data/lib/rspec/core/mocking/with_rr.rb +0 -27
  137. data/lib/rspec/core/mocking/with_rspec.rb +0 -27
  138. data/spec/rspec/core/formatters/html_formatted-1.8.7-rbx.html +0 -477
  139. data/spec/rspec/core/formatters/html_formatted-1.9.2.html +0 -425
  140. data/spec/rspec/core/formatters/html_formatted-1.9.3-jruby.html +0 -416
  141. data/spec/rspec/core/formatters/html_formatted-1.9.3-rbx.html +0 -477
  142. data/spec/rspec/core/formatters/html_formatted-1.9.3.html +0 -419
  143. data/spec/rspec/core/formatters/html_formatted-2.0.0.html +0 -425
  144. data/spec/support/in_sub_process.rb +0 -37
  145. data/spec/support/sandboxed_mock_space.rb +0 -100
@@ -1,40 +1,38 @@
1
1
  # Deliberately named _specs.rb to avoid being loaded except when specified
2
2
 
3
- describe "pending spec with no implementation" do
3
+ RSpec.describe "pending spec with no implementation" do
4
4
  it "is pending"
5
5
  end
6
6
 
7
- describe "pending command with block format" do
7
+ RSpec.describe "pending command with block format" do
8
8
  context "with content that would fail" do
9
9
  it "is pending" do
10
- pending do
11
- expect(1).to eq(2)
12
- end
10
+ pending
11
+ expect(1).to eq(2)
13
12
  end
14
13
  end
15
14
 
16
15
  context "with content that would pass" do
17
16
  it "fails" do
18
- pending do
19
- expect(1).to eq(1)
20
- end
17
+ pending
18
+ expect(1).to eq(1)
21
19
  end
22
20
  end
23
21
  end
24
22
 
25
- describe "passing spec" do
23
+ RSpec.describe "passing spec" do
26
24
  it "passes" do
27
25
  expect(1).to eq(1)
28
26
  end
29
27
  end
30
28
 
31
- describe "failing spec" do
29
+ RSpec.describe "failing spec" do
32
30
  it "fails" do
33
31
  expect(1).to eq(2)
34
32
  end
35
33
  end
36
34
 
37
- describe "a failing spec with odd backtraces" do
35
+ RSpec.describe "a failing spec with odd backtraces" do
38
36
  it "fails with a backtrace that has no file" do
39
37
  require 'erb'
40
38
 
@@ -14,7 +14,7 @@ module RSpec::Matchers
14
14
  c.include ModThatIncludesMatchers, :include_mod_that_includes_rspec_matchers => true
15
15
  end
16
16
 
17
- describe self do
17
+ RSpec.describe self do
18
18
  shared_examples_for "a normal module with a method that supers" do
19
19
  it "raises the expected error (and not SystemStackError)" do
20
20
  expect { __method_with_super }.to raise_error(NoMethodError) # there is no __method_with_super in an ancestor
@@ -2,20 +2,20 @@ require 'spec_helper'
2
2
 
3
3
  module RSpec
4
4
  module Core
5
- describe RubyProject do
5
+ RSpec.describe RubyProject do
6
6
 
7
7
  describe "#determine_root" do
8
8
 
9
9
  context "with ancestor containing spec directory" do
10
10
  it "returns ancestor containing the spec directory" do
11
- RubyProject.stub(:ascend_until).and_return('foodir')
11
+ allow(RubyProject).to receive(:ascend_until).and_return('foodir')
12
12
  expect(RubyProject.determine_root).to eq("foodir")
13
13
  end
14
14
  end
15
15
 
16
16
  context "without ancestor containing spec directory" do
17
17
  it "returns current working directory" do
18
- RubyProject.stub(:find_first_parent_containing).and_return(nil)
18
+ allow(RubyProject).to receive(:find_first_parent_containing).and_return(nil)
19
19
  expect(RubyProject.determine_root).to eq(".")
20
20
  end
21
21
  end
@@ -2,27 +2,47 @@ require 'spec_helper'
2
2
  require 'rspec/core/drb_command_line'
3
3
 
4
4
  module RSpec::Core
5
- describe Runner do
5
+ RSpec.describe Runner do
6
+ describe 'invocation' do
7
+ before do
8
+ # Simulate invoking the suite like exe/rspec does.
9
+ allow(RSpec::Core::Runner).to receive(:run)
10
+ RSpec::Core::Runner.invoke
11
+ end
12
+
13
+ it 'does not autorun after having been invoked' do
14
+ expect(RSpec::Core::Runner).not_to receive(:at_exit)
15
+ RSpec::Core::Runner.autorun
16
+ end
17
+
18
+ it 'prints a warning when autorun is attempted' do
19
+ expect_deprecation_with_call_site(__FILE__, __LINE__ + 1)
20
+ RSpec::Core::Runner.autorun
21
+ end
22
+ end
23
+
6
24
  describe 'at_exit' do
7
25
  it 'sets an at_exit hook if none is already set' do
8
- RSpec::Core::Runner.stub(:installed_at_exit?).and_return(false)
9
- RSpec::Core::Runner.stub(:running_in_drb?).and_return(false)
10
- RSpec::Core::Runner.stub(:at_exit_hook_disabled?).and_return(false)
11
- RSpec::Core::Runner.stub(:run).and_return(-1)
12
- RSpec::Core::Runner.should_receive(:at_exit)
26
+ allow(RSpec::Core::Runner).to receive(:autorun_disabled?).and_return(false)
27
+ allow(RSpec::Core::Runner).to receive(:installed_at_exit?).and_return(false)
28
+ allow(RSpec::Core::Runner).to receive(:running_in_drb?).and_return(false)
29
+ allow(RSpec::Core::Runner).to receive(:invoke)
30
+ expect(RSpec::Core::Runner).to receive(:at_exit)
13
31
  RSpec::Core::Runner.autorun
14
32
  end
15
33
 
16
34
  it 'does not set the at_exit hook if it is already set' do
17
- RSpec::Core::Runner.stub(:installed_at_exit?).and_return(true)
18
- RSpec::Core::Runner.stub(:running_in_drb?).and_return(false)
19
- RSpec::Core::Runner.stub(:at_exit_hook_disabled?).and_return(false)
20
- RSpec::Core::Runner.should_receive(:at_exit).never
35
+ allow(RSpec::Core::Runner).to receive(:autorun_disabled?).and_return(false)
36
+ allow(RSpec::Core::Runner).to receive(:installed_at_exit?).and_return(true)
37
+ allow(RSpec::Core::Runner).to receive(:running_in_drb?).and_return(false)
38
+ expect(RSpec::Core::Runner).to receive(:at_exit).never
21
39
  RSpec::Core::Runner.autorun
22
40
  end
23
41
  end
24
42
 
25
- describe "#running_in_drb?" do
43
+ # This is intermittently slow because this method calls out to the network
44
+ # interface.
45
+ describe "#running_in_drb?", :slow do
26
46
  it "returns true if drb server is started with 127.0.0.1" do
27
47
  allow(::DRb).to receive(:current_server).and_return(double(:uri => "druby://127.0.0.1:0000/"))
28
48
 
@@ -43,27 +63,49 @@ module RSpec::Core
43
63
  end
44
64
 
45
65
  it "returns false if no drb server is running" do
46
- ::DRb.stub(:current_server).and_raise(::DRb::DRbServerNotFound)
66
+ allow(::DRb).to receive(:current_server).and_raise(::DRb::DRbServerNotFound)
47
67
 
48
68
  expect(RSpec::Core::Runner.running_in_drb?).to be_falsey
49
69
  end
50
70
  end
51
71
 
72
+ describe "#invoke" do
73
+ let(:runner) { RSpec::Core::Runner }
74
+
75
+ it "runs the specs via #run" do
76
+ allow(runner).to receive(:exit)
77
+ expect(runner).to receive(:run)
78
+ runner.invoke
79
+ end
80
+
81
+ it "doesn't exit on success" do
82
+ allow(runner).to receive(:run) { 0 }
83
+ expect(runner).to_not receive(:exit)
84
+ runner.invoke
85
+ end
86
+
87
+ it "exits with #run's status on failure" do
88
+ allow(runner).to receive(:run) { 123 }
89
+ expect(runner).to receive(:exit).with(123)
90
+ runner.invoke
91
+ end
92
+ end
93
+
52
94
  describe "#run" do
53
95
  let(:err) { StringIO.new }
54
96
  let(:out) { StringIO.new }
55
97
 
56
98
  it "tells RSpec to reset" do
57
- CommandLine.stub(:new => double.as_null_object)
58
- RSpec.configuration.stub(:files_to_run => [], :warn => nil)
59
- RSpec.should_receive(:reset)
99
+ allow(CommandLine).to receive_messages(:new => double.as_null_object)
100
+ allow(RSpec.configuration).to receive_messages(:files_to_run => [], :warn => nil)
101
+ expect(RSpec).to receive(:reset)
60
102
  RSpec::Core::Runner.run([], err, out)
61
103
  end
62
104
 
63
105
  context "with --drb or -X" do
64
106
  before(:each) do
65
107
  @options = RSpec::Core::ConfigurationOptions.new(%w[--drb --drb-port 8181 --color])
66
- RSpec::Core::ConfigurationOptions.stub(:new) { @options }
108
+ allow(RSpec::Core::ConfigurationOptions).to receive(:new) { @options }
67
109
  end
68
110
 
69
111
  def run_specs
@@ -73,9 +115,9 @@ module RSpec::Core
73
115
  context 'and a DRb server is running' do
74
116
  it "builds a DRbCommandLine and runs the specs" do
75
117
  drb_proxy = double(RSpec::Core::DRbCommandLine, :run => true)
76
- drb_proxy.should_receive(:run).with(err, out)
118
+ expect(drb_proxy).to receive(:run).with(err, out)
77
119
 
78
- RSpec::Core::DRbCommandLine.should_receive(:new).and_return(drb_proxy)
120
+ expect(RSpec::Core::DRbCommandLine).to receive(:new).and_return(drb_proxy)
79
121
 
80
122
  run_specs
81
123
  end
@@ -83,12 +125,12 @@ module RSpec::Core
83
125
 
84
126
  context 'and a DRb server is not running' do
85
127
  before(:each) do
86
- RSpec::Core::DRbCommandLine.should_receive(:new).and_raise(DRb::DRbConnError)
128
+ expect(RSpec::Core::DRbCommandLine).to receive(:new).and_raise(DRb::DRbConnError)
87
129
  end
88
130
 
89
131
  it "outputs a message" do
90
- RSpec.configuration.stub(:files_to_run) { [] }
91
- err.should_receive(:puts).with(
132
+ allow(RSpec.configuration).to receive(:files_to_run) { [] }
133
+ expect(err).to receive(:puts).with(
92
134
  "No DRb server is running. Running in local process instead ..."
93
135
  )
94
136
  run_specs
@@ -96,9 +138,9 @@ module RSpec::Core
96
138
 
97
139
  it "builds a CommandLine and runs the specs" do
98
140
  process_proxy = double(RSpec::Core::CommandLine, :run => 0)
99
- process_proxy.should_receive(:run).with(err, out)
141
+ expect(process_proxy).to receive(:run).with(err, out)
100
142
 
101
- RSpec::Core::CommandLine.should_receive(:new).and_return(process_proxy)
143
+ expect(RSpec::Core::CommandLine).to receive(:new).and_return(process_proxy)
102
144
 
103
145
  run_specs
104
146
  end
@@ -1,6 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
- describe RSpec::SharedContext do
3
+ RSpec.describe RSpec::SharedContext do
4
4
  it "is accessible as RSpec::Core::SharedContext" do
5
5
  RSpec::Core::SharedContext
6
6
  end
@@ -42,11 +42,11 @@ describe RSpec::SharedContext do
42
42
  c.before(:each) { ordered_hooks << "config" }
43
43
  end
44
44
 
45
- shared_context("before each stuff", :example => :before_each_hook_order) do
45
+ RSpec.shared_context("before each stuff", :example => :before_each_hook_order) do
46
46
  before(:each) { ordered_hooks << "shared_context"}
47
47
  end
48
48
 
49
- group = RSpec::Core::ExampleGroup.describe :example => :before_each_hook_order do
49
+ group = RSpec.describe :example => :before_each_hook_order do
50
50
  before(:each) { ordered_hooks << "example_group" }
51
51
  example {}
52
52
  end
@@ -61,7 +61,7 @@ describe RSpec::SharedContext do
61
61
  extend RSpec::SharedContext
62
62
  let(:foo) { 'foo' }
63
63
  end
64
- group = RSpec::Core::ExampleGroup.describe do
64
+ group = RSpec.describe do
65
65
  include shared
66
66
  end
67
67
 
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module RSpec::Core::SharedExampleGroup
4
- describe Collection do
4
+ RSpec.describe Collection do
5
5
 
6
6
  # this represents:
7
7
  #
@@ -1,13 +1,15 @@
1
1
  require 'spec_helper'
2
+ require 'rspec/support/spec/in_sub_process'
2
3
 
3
4
  module RandomTopLevelModule
4
5
  def self.setup!
5
- shared_examples_for("top level in module") {}
6
+ RSpec.shared_examples_for("top level in module") {}
6
7
  end
7
8
  end
8
9
 
9
10
  module RSpec::Core
10
- describe SharedExampleGroup do
11
+ RSpec.describe SharedExampleGroup do
12
+ include RSpec::Support::InSubProcess
11
13
 
12
14
  ExampleModule = Module.new
13
15
  ExampleClass = Class.new
@@ -18,7 +20,7 @@ module RSpec::Core
18
20
  end
19
21
 
20
22
  module SharedExampleGroup
21
- describe Registry do
23
+ RSpec.describe Registry do
22
24
  it "can safely be reset when there aren't any shared groups" do
23
25
  expect { Registry.new.clear }.to_not raise_error
24
26
  end
@@ -38,8 +40,15 @@ module RSpec::Core
38
40
  group.send(shared_method_name, *args, &block)
39
41
  end
40
42
 
41
- it "is exposed to the global namespace" do
42
- expect(Kernel).to respond_to(shared_method_name)
43
+ it "is exposed to the global namespace when expose_dsl_globally is enabled" do
44
+ in_sub_process do
45
+ RSpec.configuration.expose_dsl_globally = true
46
+ expect(Kernel).to respond_to(shared_method_name)
47
+ end
48
+ end
49
+
50
+ it "is not exposed to the global namespace when monkey patching is disabled" do
51
+ expect(Kernel).to_not respond_to(shared_method_name)
43
52
  end
44
53
 
45
54
  it "displays a warning when adding a second shared example group with the same name" do
@@ -72,12 +81,12 @@ module RSpec::Core
72
81
  end
73
82
 
74
83
  context "given a hash" do
75
- it "delegates extend on configuration" do
84
+ it "delegates include on configuration" do
76
85
  implementation = Proc.new { def bar; 'bar'; end }
77
86
  define_shared_group(:foo => :bar, &implementation)
78
87
  a = RSpec.configuration.include_or_extend_modules.first
79
- expect(a[0]).to eq(:extend)
80
- expect(Class.new.extend(a[1]).new.bar).to eq('bar')
88
+ expect(a[0]).to eq(:include)
89
+ expect(Class.new.send(:include, a[1]).new.bar).to eq('bar')
81
90
  expect(a[2]).to eq(:foo => :bar)
82
91
  end
83
92
  end
@@ -89,12 +98,12 @@ module RSpec::Core
89
98
  expect(SharedExampleGroup.registry.shared_example_groups[group]["name"]).to eq implementation
90
99
  end
91
100
 
92
- it "delegates extend on configuration" do
101
+ it "delegates include on configuration" do
93
102
  implementation = Proc.new { def bar; 'bar'; end }
94
103
  define_shared_group("name", :foo => :bar, &implementation)
95
104
  a = RSpec.configuration.include_or_extend_modules.first
96
- expect(a[0]).to eq(:extend)
97
- expect(Class.new.extend(a[1]).new.bar).to eq('bar')
105
+ expect(a[0]).to eq(:include)
106
+ expect(Class.new.send(:include, a[1]).new.bar).to eq('bar')
98
107
  expect(a[2]).to eq(:foo => :bar)
99
108
  end
100
109
  end
@@ -1,6 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
- describe "RSpec deprecations and warnings" do
3
+ RSpec.describe "rspec warnings and deprecations" do
4
4
 
5
5
  describe "#deprecate" do
6
6
  it "passes the hash to the reporter" do
@@ -5,7 +5,7 @@ class Foo; end
5
5
 
6
6
  module RSpec::Core
7
7
 
8
- describe RSpec::Core::World do
8
+ RSpec.describe RSpec::Core::World do
9
9
  let(:configuration) { RSpec::Core::Configuration.new }
10
10
  let(:world) { RSpec::Core::World.new(configuration) }
11
11
 
@@ -85,14 +85,14 @@ module RSpec::Core
85
85
 
86
86
  describe "#announce_filters" do
87
87
  let(:reporter) { double('reporter').as_null_object }
88
- before { world.stub(:reporter) { reporter } }
88
+ before { allow(world).to receive(:reporter) { reporter } }
89
89
 
90
90
  context "with no examples" do
91
- before { world.stub(:example_count) { 0 } }
91
+ before { allow(world).to receive(:example_count) { 0 } }
92
92
 
93
93
  context "with no filters" do
94
94
  it "announces" do
95
- reporter.should_receive(:message).
95
+ expect(reporter).to receive(:message).
96
96
  with("No examples found.")
97
97
  world.announce_filters
98
98
  end
@@ -101,7 +101,7 @@ module RSpec::Core
101
101
  context "with an inclusion filter" do
102
102
  it "announces" do
103
103
  configuration.filter_run_including :foo => 'bar'
104
- reporter.should_receive(:message).
104
+ expect(reporter).to receive(:message).
105
105
  with(/All examples were filtered out/)
106
106
  world.announce_filters
107
107
  end
@@ -109,9 +109,9 @@ module RSpec::Core
109
109
 
110
110
  context "with an inclusion filter and run_all_when_everything_filtered" do
111
111
  it "announces" do
112
- configuration.stub(:run_all_when_everything_filtered?) { true }
112
+ allow(configuration).to receive(:run_all_when_everything_filtered?) { true }
113
113
  configuration.filter_run_including :foo => 'bar'
114
- reporter.should_receive(:message).
114
+ expect(reporter).to receive(:message).
115
115
  with(/All examples were filtered out/)
116
116
  world.announce_filters
117
117
  end
@@ -120,7 +120,7 @@ module RSpec::Core
120
120
  context "with an exclusion filter" do
121
121
  it "announces" do
122
122
  configuration.filter_run_excluding :foo => 'bar'
123
- reporter.should_receive(:message).
123
+ expect(reporter).to receive(:message).
124
124
  with(/All examples were filtered out/)
125
125
  world.announce_filters
126
126
  end
@@ -128,11 +128,11 @@ module RSpec::Core
128
128
  end
129
129
 
130
130
  context "with examples" do
131
- before { world.stub(:example_count) { 1 } }
131
+ before { allow(world).to receive(:example_count) { 1 } }
132
132
 
133
133
  context "with no filters" do
134
134
  it "does not announce" do
135
- reporter.should_not_receive(:message)
135
+ expect(reporter).not_to receive(:message)
136
136
  world.announce_filters
137
137
  end
138
138
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe RSpec do
3
+ RSpec.describe RSpec do
4
4
  describe "::configuration" do
5
5
  it "returns the same object every time" do
6
6
  expect(RSpec.configuration).to equal(RSpec.configuration)
@@ -72,7 +72,7 @@ describe RSpec do
72
72
 
73
73
  # This is hard to test :(. Best way I could come up with was starting
74
74
  # fresh ruby process w/o this stuff already loaded.
75
- it "loads mocks and expectations when the constants are referenced" do
75
+ it "loads mocks and expectations when the constants are referenced", :slow do
76
76
  code = "$LOAD_PATH.replace(#{$LOAD_PATH.inspect}); " +
77
77
  'require "rspec"; ' +
78
78
  "puts RSpec::Mocks.name; " +
@@ -15,18 +15,14 @@ rescue LoadError
15
15
  end
16
16
 
17
17
  Spork.prefork do
18
- old_verbose, $VERBOSE = $VERBOSE, false
19
- if ENV['TRAVIS'] && !ENV['NO_COVERALLS']
20
- require 'simplecov' if RUBY_VERSION.to_f > 1.8
21
- require 'coveralls'
22
- Coveralls.wear! do
23
- add_filter '/bundle/'
24
- add_filter '/spec/'
25
- add_filter '/tmp/'
18
+ require 'rspec/support/spec'
19
+
20
+ module ArubaLoader
21
+ extend RSpec::Support::WithIsolatedStdErr
22
+ with_isolated_stderr do
23
+ require 'aruba/api'
26
24
  end
27
25
  end
28
- require 'aruba/api'
29
- $VERBOSE = old_verbose
30
26
 
31
27
  if RUBY_PLATFORM == 'java'
32
28
  # Works around https://jira.codehaus.org/browse/JRUBY-5678
@@ -49,8 +45,6 @@ Spork.prefork do
49
45
 
50
46
  Dir['./spec/support/**/*.rb'].map {|f| require f}
51
47
 
52
- $stderr = RSpec::StdErrSplitter.new
53
-
54
48
  class NullObject
55
49
  private
56
50
  def method_missing(method, *args, &block)
@@ -64,6 +58,7 @@ Spork.prefork do
64
58
  @orig_world = RSpec.world
65
59
  @orig_example = RSpec.current_example
66
60
  new_config = RSpec::Core::Configuration.new
61
+ new_config.expose_dsl_globally = false
67
62
  new_world = RSpec::Core::World.new(new_config)
68
63
  RSpec.configuration = new_config
69
64
  RSpec.world = new_world
@@ -78,7 +73,7 @@ Spork.prefork do
78
73
  end
79
74
  end
80
75
 
81
- RSpec::Core::SandboxedMockSpace.sandboxed do
76
+ RSpec::Mocks.with_temporary_scope do
82
77
  object.instance_eval(&block)
83
78
  end
84
79
  ensure
@@ -122,8 +117,6 @@ Spork.prefork do
122
117
  end
123
118
  end
124
119
 
125
- require 'rspec/support/spec'
126
-
127
120
  RSpec.configure do |c|
128
121
  # structural
129
122
  c.alias_it_behaves_like_to 'it_has_behavior'
@@ -133,22 +126,17 @@ Spork.prefork do
133
126
  :file_path => /spec\/command_line/
134
127
  }
135
128
 
136
- # Use the doc formatter when running individual files.
137
- # This is too verbose when running all spec files but
138
- # is nice for a single file.
139
- if c.files_to_run.one? && c.formatters.none?
140
- c.formatter = 'doc'
141
- end
142
-
143
129
  c.expect_with :rspec do |expectations|
144
130
  expectations.syntax = :expect
145
131
  end
146
132
 
133
+ c.mock_with :rspec do |mocks|
134
+ mocks.syntax = :expect
135
+ end
136
+
147
137
  # runtime options
148
138
  c.color = !in_editor?
149
- c.filter_run :focus
150
139
  c.include EnvHelpers
151
- c.run_all_when_everything_filtered = true
152
140
  c.filter_run_excluding :ruby => lambda {|version|
153
141
  case version.to_s
154
142
  when "!jruby"