rspec-core 2.4.0 → 2.5.0
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.
- data/.gitignore +1 -0
- data/Gemfile +9 -4
- data/Guardfile +3 -3
- data/README.md +1 -1
- data/features/.nav +7 -2
- data/features/{README.markdown → Autotest.md} +17 -20
- data/features/Changelog.md +57 -2
- data/features/README.md +17 -0
- data/features/Upgrade.md +8 -66
- data/features/command_line/configure.feature +2 -2
- data/features/command_line/example_name_option.feature +10 -10
- data/features/command_line/exit_status.feature +4 -4
- data/features/command_line/line_number_appended_to_path.feature +11 -11
- data/features/command_line/line_number_option.feature +9 -9
- data/features/command_line/tag.feature +9 -9
- data/features/configuration/custom_settings.feature +3 -3
- data/features/configuration/fail_fast.feature +3 -3
- data/features/configuration/read_options_from_file.feature +4 -4
- data/features/example_groups/shared_example_group.feature +4 -4
- data/features/expectation_framework_integration/configure_expectation_framework.feature +8 -9
- data/features/filtering/exclusion_filters.feature +1 -1
- data/features/filtering/run_all_when_everything_filtered.feature +1 -1
- data/features/formatters/custom_formatter.feature +17 -13
- data/features/helper_methods/arbitrary_methods.feature +40 -0
- data/features/helper_methods/let.feature +50 -0
- data/features/hooks/before_and_after_hooks.feature +10 -10
- data/features/hooks/filtering.feature +37 -20
- data/features/metadata/described_class.feature +1 -1
- data/features/mock_framework_integration/use_flexmock.feature +1 -1
- data/features/mock_framework_integration/use_mocha.feature +1 -1
- data/features/mock_framework_integration/use_rr.feature +1 -1
- data/features/mock_framework_integration/use_rspec.feature +1 -1
- data/features/spec_files/arbitrary_file_suffix.feature +1 -1
- data/features/step_definitions/additional_cli_steps.rb +1 -1
- data/features/subject/attribute_of_subject.feature +2 -2
- data/features/subject/explicit_subject.feature +5 -5
- data/features/subject/implicit_receiver.feature +2 -2
- data/features/subject/implicit_subject.feature +2 -2
- data/lib/autotest/rspec2.rb +63 -13
- data/lib/rspec/core/configuration.rb +0 -1
- data/lib/rspec/core/configuration_options.rb +15 -12
- data/lib/rspec/core/example.rb +14 -6
- data/lib/rspec/core/example_group.rb +5 -4
- data/lib/rspec/core/formatters/base_formatter.rb +1 -1
- data/lib/rspec/core/formatters/documentation_formatter.rb +1 -1
- data/lib/rspec/core/formatters/html_formatter.rb +131 -32
- data/lib/rspec/core/formatters/snippet_extractor.rb +1 -1
- data/lib/rspec/core/hooks.rb +16 -1
- data/lib/rspec/core/option_parser.rb +6 -6
- data/lib/rspec/core/rake_task.rb +1 -1
- data/lib/rspec/core/subject.rb +7 -7
- data/lib/rspec/core/version.rb +1 -1
- data/rspec-core.gemspec +0 -12
- data/script/FullBuildRakeFile +63 -0
- data/script/cucumber +1 -0
- data/script/full_build +1 -0
- data/script/spec +1 -0
- data/spec/autotest/failed_results_re_spec.rb +22 -5
- data/spec/autotest/rspec_spec.rb +132 -16
- data/spec/rspec/core/configuration_options_spec.rb +38 -6
- data/spec/rspec/core/example_group_spec.rb +15 -64
- data/spec/rspec/core/formatters/base_formatter_spec.rb +23 -0
- data/spec/rspec/core/formatters/html_formatted-1.8.6.html +150 -48
- data/spec/rspec/core/formatters/html_formatted-1.8.7-jruby.html +151 -49
- data/spec/rspec/core/formatters/html_formatted-1.8.7.html +150 -48
- data/spec/rspec/core/formatters/html_formatted-1.9.1.html +150 -48
- data/spec/rspec/core/formatters/html_formatted-1.9.2.html +150 -48
- data/spec/rspec/core/formatters/text_mate_formatted-1.8.6.html +150 -48
- data/spec/rspec/core/formatters/text_mate_formatted-1.8.7-jruby.html +151 -49
- data/spec/rspec/core/formatters/text_mate_formatted-1.8.7.html +150 -48
- data/spec/rspec/core/formatters/text_mate_formatted-1.9.1.html +150 -48
- data/spec/rspec/core/formatters/text_mate_formatted-1.9.2.html +150 -48
- data/spec/rspec/core/hooks_filtering_spec.rb +49 -0
- data/spec/rspec/core/rake_task_spec.rb +3 -3
- data/spec/rspec/core/subject_spec.rb +81 -0
- metadata +20 -22
- data/History.markdown +0 -186
- data/Upgrade.markdown +0 -345
@@ -0,0 +1,63 @@
|
|
1
|
+
# this is in a separate rakefile because our main one depends on the bundled gems
|
2
|
+
# already being installed. This must be able to run w/o bundled gems installed.
|
3
|
+
|
4
|
+
def rake(command = "")
|
5
|
+
sh "rake #{command}"
|
6
|
+
end
|
7
|
+
|
8
|
+
desc "Run a full build: install necessary gems with bundler, runs specs, run cukes"
|
9
|
+
task :build => :bundle_install do
|
10
|
+
rake
|
11
|
+
end
|
12
|
+
|
13
|
+
desc "Install necessary gems with bundler and runs specs"
|
14
|
+
task :spec => :bundle_install do
|
15
|
+
rake "spec"
|
16
|
+
end
|
17
|
+
|
18
|
+
desc "Install necessary gems with bundler and runs cukes"
|
19
|
+
task :cucumber => :bundle_install do
|
20
|
+
rake "cucumber"
|
21
|
+
end
|
22
|
+
|
23
|
+
desc "Prints description of current ruby interpreter"
|
24
|
+
task :print_ruby_description do
|
25
|
+
description = if defined?(RUBY_DESCRIPTION)
|
26
|
+
RUBY_DESCRIPTION
|
27
|
+
else
|
28
|
+
# RUBY_DESCRIPTION is undefined on 1.8.6
|
29
|
+
"ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE} patchlevel #{RUBY_PATCHLEVEL}) [#{RUBY_PLATFORM}]"
|
30
|
+
end
|
31
|
+
|
32
|
+
puts
|
33
|
+
puts "=" * 80
|
34
|
+
puts "Using #{description}"
|
35
|
+
puts "=" * 80
|
36
|
+
puts
|
37
|
+
end
|
38
|
+
|
39
|
+
task :bundle_install => :ensure_bundler_installed do
|
40
|
+
# Unfortunately, there is no version of ruby-debug that installs cleanly on 1.9.1 and 1.9.2.
|
41
|
+
# Our Gemfile specifies different versions using conditionals, but we still need to bundle update
|
42
|
+
# to get bundler to use the different versions.
|
43
|
+
if RUBY_VERSION =~ /^1\.9/
|
44
|
+
sh "bundle update ruby-debug-base19"
|
45
|
+
end
|
46
|
+
|
47
|
+
sh "bundle install"
|
48
|
+
end
|
49
|
+
|
50
|
+
task :ensure_bundler_installed => :print_ruby_description do
|
51
|
+
installed = begin
|
52
|
+
require 'rubygems'
|
53
|
+
require 'bundler'
|
54
|
+
true
|
55
|
+
rescue LoadError
|
56
|
+
false
|
57
|
+
end
|
58
|
+
|
59
|
+
unless installed
|
60
|
+
sh "gem install bundler"
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
data/script/cucumber
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm 1.8.6,1.8.7,ree,1.9.1,1.9.2,jruby rake -f script/FullBuildRakeFile cucumber | tee tmp/cucumber.out
|
data/script/full_build
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm 1.8.6,1.8.7,ree,1.9.1,1.9.2,jruby rake -f script/FullBuildRakeFile build | tee tmp/full_build.out
|
data/script/spec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm 1.8.6,1.8.7,ree,1.9.1,1.9.2,jruby rake -f script/FullBuildRakeFile spec | tee tmp/spec.out
|
@@ -7,14 +7,31 @@ describe "failed_results_re for autotest" do
|
|
7
7
|
group = RSpec::Core::ExampleGroup.describe("group name")
|
8
8
|
group.example("example name") { "this".should eq("that") }
|
9
9
|
group.run(formatter)
|
10
|
-
RSpec.configuration.stub(:color_enabled?) { false }
|
11
10
|
formatter.dump_failures
|
12
11
|
output.string
|
13
12
|
end
|
14
13
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
14
|
+
context "output does not have color enabled" do
|
15
|
+
before do
|
16
|
+
RSpec.configuration.stub(:color_enabled?) { false }
|
17
|
+
end
|
18
|
+
|
19
|
+
it "matches a failure" do
|
20
|
+
re = Autotest::Rspec2.new.failed_results_re
|
21
|
+
example_output.should =~ re
|
22
|
+
example_output[re, 2].should == __FILE__.sub(File.expand_path('.'),'.')
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context "output has color enabled" do
|
27
|
+
before do
|
28
|
+
RSpec.configuration.stub(:color_enabled?) { true }
|
29
|
+
end
|
30
|
+
|
31
|
+
it "matches a failure" do
|
32
|
+
re = Autotest::Rspec2.new.failed_results_re
|
33
|
+
example_output.should =~ re
|
34
|
+
example_output[re, 2].should == __FILE__.sub(File.expand_path('.'),'.')
|
35
|
+
end
|
19
36
|
end
|
20
37
|
end
|
data/spec/autotest/rspec_spec.rb
CHANGED
@@ -5,6 +5,138 @@ describe Autotest::Rspec2 do
|
|
5
5
|
let(:spec_cmd) { File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'bin', 'rspec')) }
|
6
6
|
let(:ruby_cmd) { "ruby" }
|
7
7
|
|
8
|
+
before do
|
9
|
+
RSpec.stub(:warn_deprecation)
|
10
|
+
File.stub(:exist?) { false }
|
11
|
+
@orig_argv = ARGV.dup; ARGV.clear
|
12
|
+
end
|
13
|
+
|
14
|
+
after { ARGV.clear; ARGV.concat(@orig_argv) }
|
15
|
+
|
16
|
+
context "with ARGV" do
|
17
|
+
it "passes ARGV to command" do
|
18
|
+
ARGV.concat(%w[-c -f d])
|
19
|
+
rspec_autotest.cl_args.should eq(%w[-c -f d --tty])
|
20
|
+
end
|
21
|
+
|
22
|
+
context "with --skip-bundler" do
|
23
|
+
before do
|
24
|
+
ARGV.concat(%w[--skip-bundler])
|
25
|
+
end
|
26
|
+
it "extracts --skip-bundler" do
|
27
|
+
rspec_autotest.cl_args.should eq(%w[--tty])
|
28
|
+
end
|
29
|
+
|
30
|
+
it "sets skip_bundler? true" do
|
31
|
+
rspec_autotest.skip_bundler?.should be_true
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe "handling bundler" do
|
37
|
+
context "gemfile, no prefix" do
|
38
|
+
before do
|
39
|
+
File.stub(:exist?).with("./Gemfile") { true }
|
40
|
+
end
|
41
|
+
|
42
|
+
it "warns of deprecation of implicit inclusion of 'bundle exec'" do
|
43
|
+
RSpec.should_receive(:warn_deprecation)
|
44
|
+
rspec_autotest.make_test_cmd({})
|
45
|
+
end
|
46
|
+
|
47
|
+
it "includes bundle exec" do
|
48
|
+
rspec_autotest.
|
49
|
+
make_test_cmd({'a' => 'b'}).should match(/bundle exec/)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
context "gemfile, no prefix, --skip-bundler" do
|
54
|
+
before do
|
55
|
+
File.stub(:exist?).with("./Gemfile") { true }
|
56
|
+
ARGV.concat(%w[--skip-bundler])
|
57
|
+
end
|
58
|
+
|
59
|
+
it "does not warn" do
|
60
|
+
RSpec.should_not_receive(:warn_deprecation)
|
61
|
+
rspec_autotest.make_test_cmd({})
|
62
|
+
end
|
63
|
+
|
64
|
+
it "does not include bundle exec" do
|
65
|
+
rspec_autotest.
|
66
|
+
make_test_cmd({'a' => 'b'}).should_not match(/bundle exec/)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
context "no gemfile, prefix" do
|
71
|
+
before do
|
72
|
+
File.stub(:exist?).with("./Gemfile") { false }
|
73
|
+
end
|
74
|
+
|
75
|
+
it "does not warn" do
|
76
|
+
RSpec.should_not_receive(:warn_deprecation)
|
77
|
+
rspec_autotest.make_test_cmd({'a' => 'b'})
|
78
|
+
end
|
79
|
+
|
80
|
+
it "includes bundle exec" do
|
81
|
+
rspec_autotest.prefix = "bundle exec "
|
82
|
+
rspec_autotest.
|
83
|
+
make_test_cmd({'a' => 'b'}).should match(/bundle exec/)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
context "gemfile, prefix" do
|
88
|
+
before do
|
89
|
+
File.stub(:exist?).with("./Gemfile") { true }
|
90
|
+
rspec_autotest.prefix = "bundle exec "
|
91
|
+
end
|
92
|
+
|
93
|
+
it "does not warn" do
|
94
|
+
RSpec.should_not_receive(:warn_deprecation)
|
95
|
+
rspec_autotest.make_test_cmd({'a' => 'b'})
|
96
|
+
end
|
97
|
+
|
98
|
+
it "includes bundle exec" do
|
99
|
+
rspec_autotest.prefix = "bundle exec "
|
100
|
+
rspec_autotest.
|
101
|
+
make_test_cmd({'a' => 'b'}).should match(/bundle exec/)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
context "gemfile, prefix, --skip-bundler" do
|
106
|
+
before do
|
107
|
+
File.stub(:exist?).with("./Gemfile") { true }
|
108
|
+
rspec_autotest.prefix = "bundle exec "
|
109
|
+
rspec_autotest.stub(:skip_bundler?) { true }
|
110
|
+
end
|
111
|
+
|
112
|
+
it "does not warn" do
|
113
|
+
RSpec.should_not_receive(:warn_deprecation)
|
114
|
+
rspec_autotest.make_test_cmd({'a' => 'b'})
|
115
|
+
end
|
116
|
+
|
117
|
+
it "does not include bundle exec" do
|
118
|
+
rspec_autotest.
|
119
|
+
make_test_cmd({'a' => 'b'}).should_not match(/bundle exec/)
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
context "no gemfile, no prefix" do
|
124
|
+
before do
|
125
|
+
File.stub(:exist?).with("./Gemfile") { false }
|
126
|
+
end
|
127
|
+
|
128
|
+
it "does not warn" do
|
129
|
+
RSpec.should_not_receive(:warn_deprecation)
|
130
|
+
rspec_autotest.make_test_cmd({'a' => 'b'})
|
131
|
+
end
|
132
|
+
|
133
|
+
it "does not include bundle exec" do
|
134
|
+
rspec_autotest.
|
135
|
+
make_test_cmd({'a' => 'b'}).should_not match(/bundle exec/)
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
8
140
|
describe "commands" do
|
9
141
|
before do
|
10
142
|
rspec_autotest.stub(:ruby => ruby_cmd)
|
@@ -110,20 +242,4 @@ describe Autotest::Rspec2 do
|
|
110
242
|
rspec_autotest.normalize(@files_to_test).should have(1).file
|
111
243
|
end
|
112
244
|
end
|
113
|
-
|
114
|
-
describe "ruby command" do
|
115
|
-
context "using bundler" do
|
116
|
-
it "returns 'bundle exec'" do
|
117
|
-
File.stub(:exists?).with("./Gemfile") { true }
|
118
|
-
rspec_autotest.make_test_cmd({'a' => 'b'}).should =~ /bundle exec .*ruby/
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
|
-
context "not using bundler" do
|
123
|
-
it "returns the ruby command generated by Autotest" do
|
124
|
-
File.stub(:exists?).with("./Gemfile") { false }
|
125
|
-
rspec_autotest.make_test_cmd({'a' => 'b'}).should_not =~ /bundle exec/
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|
129
245
|
end
|
@@ -162,6 +162,7 @@ describe RSpec::Core::ConfigurationOptions do
|
|
162
162
|
it "does not send --drb back to the parser after parsing options" do
|
163
163
|
config_options_object("--drb", "--color").drb_argv.should_not include("--drb")
|
164
164
|
end
|
165
|
+
|
165
166
|
end
|
166
167
|
|
167
168
|
describe "files_or_directories_to_run" do
|
@@ -204,6 +205,38 @@ describe RSpec::Core::ConfigurationOptions do
|
|
204
205
|
config_options_object(*%w[--options custom.opts]).drb_argv.should include("--options", "custom.opts")
|
205
206
|
end
|
206
207
|
|
208
|
+
context "with tags" do
|
209
|
+
it "includes the tags" do
|
210
|
+
coo = config_options_object("--tag", "tag")
|
211
|
+
coo.drb_argv.should eq(["--tag", "tag"])
|
212
|
+
end
|
213
|
+
|
214
|
+
it "leaves tags intact" do
|
215
|
+
coo = config_options_object("--tag", "tag")
|
216
|
+
coo.drb_argv
|
217
|
+
coo.options[:filter].should eq( {:tag=>true} )
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
221
|
+
context "with formatters" do
|
222
|
+
it "includes the formatters" do
|
223
|
+
coo = config_options_object("--format", "d")
|
224
|
+
coo.drb_argv.should eq(["--format", "d"])
|
225
|
+
end
|
226
|
+
|
227
|
+
it "leaves formatters intact" do
|
228
|
+
coo = config_options_object("--format", "d")
|
229
|
+
coo.drb_argv
|
230
|
+
coo.options[:formatters].should eq([["d"]])
|
231
|
+
end
|
232
|
+
|
233
|
+
it "leaves output intact" do
|
234
|
+
coo = config_options_object("--format", "p", "--out", "foo.txt", "--format", "d")
|
235
|
+
coo.drb_argv
|
236
|
+
coo.options[:formatters].should eq([["p","foo.txt"],["d"]])
|
237
|
+
end
|
238
|
+
end
|
239
|
+
|
207
240
|
context "--drb specified in ARGV" do
|
208
241
|
it "renders all the original arguments except --drb" do
|
209
242
|
config_options_object(*%w[ --drb --color --format s --line_number 1 --example pattern --profile --backtrace -I path/a -I path/b --require path/c --require path/d]).
|
@@ -239,7 +272,7 @@ describe RSpec::Core::ConfigurationOptions do
|
|
239
272
|
end
|
240
273
|
end
|
241
274
|
|
242
|
-
describe "sources: ~/.rspec, ./.rspec, custom,
|
275
|
+
describe "sources: ~/.rspec, ./.rspec, custom, CLI, and SPEC_OPTS" do
|
243
276
|
let(:local_options_file) { File.join(Dir.tmpdir, ".rspec-local") }
|
244
277
|
let(:global_options_file) { File.join(Dir.tmpdir, ".rspec-global") }
|
245
278
|
let(:custom_options_file) { File.join(Dir.tmpdir, "custom.options") }
|
@@ -280,16 +313,15 @@ describe RSpec::Core::ConfigurationOptions do
|
|
280
313
|
options[:drb].should be_true
|
281
314
|
end
|
282
315
|
|
283
|
-
it "prefers
|
316
|
+
it "prefers SPEC_OPTS over CLI" do
|
284
317
|
ENV["SPEC_OPTS"] = "--format spec_opts"
|
285
|
-
parse_options("--format", "cli")[:formatters].should eq([['
|
318
|
+
parse_options("--format", "cli")[:formatters].should eq([['spec_opts']])
|
286
319
|
end
|
287
320
|
|
288
|
-
it "prefers
|
321
|
+
it "prefers CLI over file options" do
|
289
322
|
write_options(:local, "--format local")
|
290
323
|
write_options(:global, "--format global")
|
291
|
-
|
292
|
-
parse_options[:formatters].should eq([['spec_opts']])
|
324
|
+
parse_options("--format", "cli")[:formatters].should eq([['cli']])
|
293
325
|
end
|
294
326
|
|
295
327
|
it "prefers local file options over global" do
|
@@ -228,6 +228,21 @@ module RSpec::Core
|
|
228
228
|
|
229
229
|
end
|
230
230
|
|
231
|
+
[:focus, :focused].each do |example_alias|
|
232
|
+
describe "##{example_alias}" do
|
233
|
+
let(:group) { ExampleGroup.describe }
|
234
|
+
subject { group.send example_alias, "a focused example" }
|
235
|
+
|
236
|
+
it 'defines an example that can be filtered with :focused => true' do
|
237
|
+
subject.metadata.should include(:focused => true)
|
238
|
+
end
|
239
|
+
|
240
|
+
it 'defines an example that can be filtered with :focus => true' do
|
241
|
+
subject.metadata.should include(:focus => true)
|
242
|
+
end
|
243
|
+
end
|
244
|
+
end
|
245
|
+
|
231
246
|
describe "#before, after, and around hooks" do
|
232
247
|
|
233
248
|
it "runs the before alls in order" do
|
@@ -620,70 +635,6 @@ module RSpec::Core
|
|
620
635
|
end
|
621
636
|
end
|
622
637
|
|
623
|
-
describe "#its" do
|
624
|
-
context "with nil value" do
|
625
|
-
subject do
|
626
|
-
Class.new do
|
627
|
-
def nil_value
|
628
|
-
nil
|
629
|
-
end
|
630
|
-
end.new
|
631
|
-
end
|
632
|
-
its(:nil_value) { should be_nil }
|
633
|
-
end
|
634
|
-
|
635
|
-
context "with nested attributes" do
|
636
|
-
subject do
|
637
|
-
Class.new do
|
638
|
-
def name
|
639
|
-
"John"
|
640
|
-
end
|
641
|
-
end.new
|
642
|
-
end
|
643
|
-
its("name.size") { should == 4 }
|
644
|
-
its("name.size.class") { should == Fixnum }
|
645
|
-
end
|
646
|
-
|
647
|
-
context "when it is a Hash" do
|
648
|
-
subject do
|
649
|
-
{ :attribute => 'value',
|
650
|
-
'another_attribute' => 'another_value' }
|
651
|
-
end
|
652
|
-
its([:attribute]) { should == 'value' }
|
653
|
-
its([:attribute]) { should_not == 'another_value' }
|
654
|
-
its([:another_attribute]) { should == 'another_value' }
|
655
|
-
its([:another_attribute]) { should_not == 'value' }
|
656
|
-
its(:keys) { should =~ ['another_attribute', :attribute] }
|
657
|
-
context "when referring to an attribute without the proper array syntax" do
|
658
|
-
context "it raises an error" do
|
659
|
-
its(:attribute) do
|
660
|
-
expect do
|
661
|
-
should eq('value')
|
662
|
-
end.to raise_error(NoMethodError)
|
663
|
-
end
|
664
|
-
end
|
665
|
-
end
|
666
|
-
end
|
667
|
-
|
668
|
-
context "calling and overriding super" do
|
669
|
-
it "calls to the subject defined in the parent group" do
|
670
|
-
group = ExampleGroup.describe(Array) do
|
671
|
-
subject { [1, 'a'] }
|
672
|
-
|
673
|
-
its(:last) { should == 'a' }
|
674
|
-
|
675
|
-
describe '.first' do
|
676
|
-
def subject; super().first; end
|
677
|
-
|
678
|
-
its(:next) { should == 2 }
|
679
|
-
end
|
680
|
-
end
|
681
|
-
|
682
|
-
group.run.should be_true
|
683
|
-
end
|
684
|
-
end
|
685
|
-
|
686
|
-
end
|
687
638
|
|
688
639
|
describe "#top_level_description" do
|
689
640
|
it "returns the description from the outermost example group" do
|
@@ -31,6 +31,29 @@ describe RSpec::Core::Formatters::BaseFormatter do
|
|
31
31
|
formatter.send(:read_failed_line, exception, example)
|
32
32
|
}.should_not raise_error
|
33
33
|
end
|
34
|
+
|
35
|
+
context "when String alias to_int to_i" do
|
36
|
+
before do
|
37
|
+
class String
|
38
|
+
alias :to_int :to_i
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
after do
|
43
|
+
class String
|
44
|
+
undef to_int
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
it "doesn't hang when file exists" do
|
49
|
+
exception = mock(:Exception, :backtrace => [ "#{__FILE__}:#{__LINE__}"])
|
50
|
+
|
51
|
+
example = mock(:Example, :file_path => __FILE__)
|
52
|
+
formatter.send(:read_failed_line, exception, example).should
|
53
|
+
eql %Q{ exception = mock(:Exception, :backtrace => [ "\#{__FILE__}:\#{__LINE__}"])\n}
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
34
57
|
end
|
35
58
|
|
36
59
|
end
|