rspec 1.2.2 → 1.2.3
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/History.rdoc +31 -1
- data/Manifest.txt +14 -12
- data/Rakefile +1 -1
- data/Upgrade.rdoc +43 -3
- data/examples/failing/failing_implicit_docstrings_example.rb +5 -5
- data/examples/passing/implicit_docstrings_example.rb +3 -3
- data/features/before_and_after_blocks/before_and_after_blocks.feature +20 -21
- data/features/example_groups/example_group_with_should_methods.feature +20 -8
- data/features/example_groups/implicit_docstrings.feature +36 -20
- data/features/example_groups/nested_groups.feature +25 -10
- data/features/extensions/custom_example_group.feature +19 -0
- data/features/formatters/custom_formatter.feature +30 -0
- data/features/heckle/heckle.feature +7 -7
- data/features/interop/examples_and_tests_together.feature +63 -14
- data/features/interop/rspec_output.feature +25 -0
- data/features/interop/test_but_not_test_unit.feature +19 -7
- data/features/interop/test_case_with_should_methods.feature +37 -8
- data/features/matchers/{create_matcher.feature → define_matcher.feature} +54 -30
- data/features/matchers/{create_matcher_outside_rspec.feature → define_matcher_outside_rspec.feature} +7 -7
- data/features/mock_framework_integration/use_flexmock.feature +3 -3
- data/features/mock_framework_integration/use_mocha.feature +3 -3
- data/features/mock_framework_integration/use_rr.feature +3 -3
- data/features/mocks/mix_stubs_and_mocks.feature +4 -4
- data/features/pending/pending_examples.feature +18 -18
- data/features/runner/specify_line_number.feature +32 -0
- data/features/step_definitions/running_rspec_steps.rb +41 -0
- data/features/subject/explicit_subject.feature +4 -4
- data/features/subject/implicit_subject.feature +4 -4
- data/features/support/env.rb +64 -11
- data/features/support/matchers/smart_match.rb +10 -35
- data/lib/spec.rb +1 -0
- data/lib/spec/deprecation.rb +40 -0
- data/lib/spec/dsl/main.rb +10 -5
- data/lib/spec/example.rb +1 -27
- data/lib/spec/example/args_and_options.rb +27 -0
- data/lib/spec/example/before_and_after_hooks.rb +30 -21
- data/lib/spec/example/errors.rb +8 -18
- data/lib/spec/example/example_group_factory.rb +0 -4
- data/lib/spec/example/example_group_methods.rb +27 -41
- data/lib/spec/example/example_group_proxy.rb +12 -22
- data/lib/spec/example/example_methods.rb +8 -18
- data/lib/spec/example/example_proxy.rb +4 -4
- data/lib/spec/example/pending.rb +3 -4
- data/lib/spec/example/predicate_matchers.rb +1 -1
- data/lib/spec/example/subject.rb +2 -0
- data/lib/spec/expectations.rb +1 -26
- data/lib/spec/expectations/extensions.rb +1 -1
- data/lib/spec/expectations/extensions/kernel.rb +52 -0
- data/lib/spec/expectations/handler.rb +21 -10
- data/lib/spec/matchers/be.rb +3 -3
- data/lib/spec/matchers/be_close.rb +17 -21
- data/lib/spec/matchers/be_instance_of.rb +7 -26
- data/lib/spec/matchers/be_kind_of.rb +7 -26
- data/lib/spec/matchers/dsl.rb +9 -4
- data/lib/spec/matchers/eql.rb +24 -25
- data/lib/spec/matchers/equal.rb +25 -25
- data/lib/spec/matchers/exist.rb +5 -21
- data/lib/spec/matchers/include.rb +22 -44
- data/lib/spec/matchers/match.rb +5 -25
- data/lib/spec/matchers/match_array.rb +8 -4
- data/lib/spec/matchers/matcher.rb +13 -2
- data/lib/spec/matchers/pretty.rb +1 -0
- data/lib/spec/matchers/simple_matcher.rb +2 -2
- data/lib/spec/mocks/mock.rb +10 -10
- data/lib/spec/mocks/spec_methods.rb +1 -1
- data/lib/spec/runner/configuration.rb +53 -42
- data/lib/spec/{expectations → runner}/differs/default.rb +0 -0
- data/lib/spec/{expectations → runner}/differs/load-diff-lcs.rb +0 -0
- data/lib/spec/runner/drb_command_line.rb +1 -1
- data/lib/spec/runner/example_group_runner.rb +0 -12
- data/lib/spec/runner/formatter/base_formatter.rb +77 -30
- data/lib/spec/runner/formatter/base_text_formatter.rb +19 -24
- data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +1 -1
- data/lib/spec/runner/formatter/html_formatter.rb +4 -6
- data/lib/spec/runner/formatter/nested_text_formatter.rb +2 -2
- data/lib/spec/runner/formatter/no_op_method_missing.rb +21 -0
- data/lib/spec/runner/formatter/profile_formatter.rb +0 -4
- data/lib/spec/runner/formatter/progress_bar_formatter.rb +4 -5
- data/lib/spec/runner/formatter/silent_formatter.rb +10 -0
- data/lib/spec/runner/formatter/specdoc_formatter.rb +2 -2
- data/lib/spec/runner/option_parser.rb +14 -7
- data/lib/spec/runner/options.rb +17 -7
- data/lib/spec/runner/reporter.rb +69 -64
- data/lib/spec/version.rb +1 -1
- data/spec/spec/dsl/main_spec.rb +7 -0
- data/spec/spec/example/example_group_methods_spec.rb +16 -32
- data/spec/spec/example/example_group_proxy_spec.rb +25 -5
- data/spec/spec/example/example_group_spec.rb +2 -2
- data/spec/spec/example/example_methods_spec.rb +19 -24
- data/spec/spec/example/example_proxy_spec.rb +11 -1
- data/spec/spec/example/pending_module_spec.rb +2 -108
- data/spec/spec/example/predicate_matcher_spec.rb +23 -3
- data/spec/spec/expectations/extensions/object_spec.rb +9 -9
- data/spec/spec/expectations/fail_with_spec.rb +13 -13
- data/spec/spec/expectations/handler_spec.rb +44 -15
- data/spec/spec/matchers/be_close_spec.rb +9 -0
- data/spec/spec/matchers/be_instance_of_spec.rb +6 -4
- data/spec/spec/matchers/be_kind_of_spec.rb +5 -3
- data/spec/spec/matchers/be_spec.rb +1 -5
- data/spec/spec/matchers/compatibility_spec.rb +1 -1
- data/spec/spec/matchers/dsl_spec.rb +10 -1
- data/spec/spec/matchers/eql_spec.rb +8 -4
- data/spec/spec/matchers/equal_spec.rb +8 -4
- data/spec/spec/matchers/exist_spec.rb +1 -1
- data/spec/spec/matchers/include_spec.rb +1 -1
- data/spec/spec/matchers/match_array_spec.rb +26 -1
- data/spec/spec/matchers/match_spec.rb +2 -2
- data/spec/spec/matchers/matcher_methods_spec.rb +0 -3
- data/spec/spec/matchers/matcher_spec.rb +53 -0
- data/spec/spec/matchers/operator_matcher_spec.rb +1 -1
- data/spec/spec/mocks/mock_spec.rb +6 -0
- data/spec/spec/runner/configuration_spec.rb +11 -1
- data/spec/spec/runner/drb_command_line_spec.rb +13 -1
- data/spec/spec/runner/example_group_runner_spec.rb +0 -7
- data/spec/spec/runner/formatter/base_formatter_spec.rb +19 -12
- data/spec/spec/runner/formatter/base_text_formatter_spec.rb +2 -2
- data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +4 -4
- data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +2 -2
- data/spec/spec/runner/formatter/html_formatted-1.8.6.html +31 -34
- data/spec/spec/runner/formatter/html_formatter_spec.rb +20 -0
- data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +20 -20
- data/spec/spec/runner/formatter/profile_formatter_spec.rb +22 -3
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +24 -3
- data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +6 -6
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +25 -28
- data/spec/spec/runner/formatter/text_mate_formatter_spec.rb +2 -2
- data/spec/spec/runner/option_parser_spec.rb +108 -40
- data/spec/spec/runner/reporter_spec.rb +16 -17
- data/spec/spec_helper.rb +4 -1
- metadata +20 -18
- data/features/example_groups/output.feature +0 -20
- data/features/step_definitions/running_rspec.rb +0 -69
- data/lib/spec/expectations/extensions/object.rb +0 -63
- data/resources/spec/example_group_with_should_methods.rb +0 -12
- data/resources/spec/simple_spec.rb +0 -8
- data/resources/test/spec_and_test_together.rb +0 -56
- data/resources/test/spec_including_test_but_not_unit.rb +0 -11
- data/resources/test/test_case_with_should_methods.rb +0 -29
@@ -31,9 +31,6 @@ This module should provide the following methods, each of which returns a Matche
|
|
31
31
|
it "have_at_most" do
|
32
32
|
have_at_most(0).should be_an_instance_of(Have)
|
33
33
|
end
|
34
|
-
it "include" do
|
35
|
-
include(:value).should be_an_instance_of(Include)
|
36
|
-
end
|
37
34
|
it "raise_error" do
|
38
35
|
raise_error.should be_an_instance_of(RaiseError)
|
39
36
|
raise_error(NoMethodError).should be_an_instance_of(RaiseError)
|
@@ -28,6 +28,43 @@ module Spec
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
|
+
it "is not diffable by default" do
|
32
|
+
matcher = Spec::Matchers::Matcher.new(:name) do
|
33
|
+
match {|actual|}
|
34
|
+
end
|
35
|
+
matcher.matches?(0)
|
36
|
+
matcher.should_not be_diffable
|
37
|
+
end
|
38
|
+
|
39
|
+
it "is diffable when told to be" do
|
40
|
+
matcher = Spec::Matchers::Matcher.new(:name) do
|
41
|
+
match {|actual|}
|
42
|
+
diffable
|
43
|
+
end
|
44
|
+
matcher.matches?(0)
|
45
|
+
matcher.should be_diffable
|
46
|
+
end
|
47
|
+
|
48
|
+
it "provides expected" do
|
49
|
+
matcher = Spec::Matchers::Matcher.new(:name, 'expected string') do
|
50
|
+
match {|actual|}
|
51
|
+
end
|
52
|
+
|
53
|
+
matcher.matches?('actual string')
|
54
|
+
|
55
|
+
matcher.expected.should == ['expected string']
|
56
|
+
end
|
57
|
+
|
58
|
+
it "provides actual" do
|
59
|
+
matcher = Spec::Matchers::Matcher.new(:name, 'expected string') do
|
60
|
+
match {|actual|}
|
61
|
+
end
|
62
|
+
|
63
|
+
matcher.matches?('actual string')
|
64
|
+
|
65
|
+
matcher.actual.should == 'actual string'
|
66
|
+
end
|
67
|
+
|
31
68
|
context "with overrides" do
|
32
69
|
before(:each) do
|
33
70
|
@matcher = Spec::Matchers::Matcher.new(:be_boolean, true) do |boolean|
|
@@ -143,6 +180,22 @@ module Spec
|
|
143
180
|
@matcher.description.should == "matcher name 1, 2, 3, and 4"
|
144
181
|
end
|
145
182
|
end
|
183
|
+
|
184
|
+
context "with helper methods" do
|
185
|
+
it "does something" do
|
186
|
+
matcher = Spec::Matchers::Matcher.new(:be_similar_to, [1,2,3]) do |sample|
|
187
|
+
match do |actual|
|
188
|
+
similar?(sample, actual)
|
189
|
+
end
|
190
|
+
|
191
|
+
def similar?(a, b)
|
192
|
+
a.sort == b.sort
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|
196
|
+
matcher.matches?([2,3,1]).should be_true
|
197
|
+
end
|
198
|
+
end
|
146
199
|
|
147
200
|
end
|
148
201
|
end
|
@@ -5,6 +5,7 @@ module Spec
|
|
5
5
|
describe Configuration do
|
6
6
|
with_sandboxed_options do
|
7
7
|
with_sandboxed_config do
|
8
|
+
|
8
9
|
describe "#mock_with" do
|
9
10
|
it "should default mock framework to rspec" do
|
10
11
|
config.mock_framework.should =~ /\/spec\/adapters\/mock_frameworks\/rspec$/
|
@@ -179,7 +180,7 @@ module Spec
|
|
179
180
|
config.append_before(:all, :type => :special_child) do
|
180
181
|
order << :special_child_append_before_all
|
181
182
|
end
|
182
|
-
config.append_before
|
183
|
+
config.append_before do # default is :each
|
183
184
|
order << :append_before_each
|
184
185
|
end
|
185
186
|
config.append_before(:each, :type => :special) do
|
@@ -293,7 +294,16 @@ module Spec
|
|
293
294
|
:append__after_all
|
294
295
|
]
|
295
296
|
end
|
297
|
+
|
298
|
+
end
|
299
|
+
|
300
|
+
describe "#predicate_matchers (DEPRECATED)" do
|
301
|
+
it "is deprecated" do
|
302
|
+
Spec.should_receive(:deprecate)
|
303
|
+
config.predicate_matchers[:foo] = :bar?
|
304
|
+
end
|
296
305
|
end
|
306
|
+
|
297
307
|
end
|
298
308
|
end
|
299
309
|
end
|
@@ -6,13 +6,19 @@ module Spec
|
|
6
6
|
describe DrbCommandLine do
|
7
7
|
|
8
8
|
context "without server running" do
|
9
|
-
it "
|
9
|
+
it "prints error" do
|
10
10
|
err = out = StringIO.new
|
11
11
|
DrbCommandLine.run(OptionParser.parse(['--version'], err, out))
|
12
12
|
|
13
13
|
err.rewind
|
14
14
|
err.read.should =~ /No server is running/
|
15
15
|
end
|
16
|
+
|
17
|
+
it "returns nil" do
|
18
|
+
err = out = StringIO.new
|
19
|
+
result = DrbCommandLine.run(OptionParser.parse(['--version'], err, out))
|
20
|
+
result.should be_nil
|
21
|
+
end
|
16
22
|
end
|
17
23
|
|
18
24
|
context "with server running" do
|
@@ -45,6 +51,12 @@ module Spec
|
|
45
51
|
DRb.stop_service
|
46
52
|
end
|
47
53
|
|
54
|
+
it "returns true" do
|
55
|
+
err = out = StringIO.new
|
56
|
+
result = DrbCommandLine.run(OptionParser.parse(['--version'], err, out))
|
57
|
+
result.should be_true
|
58
|
+
end
|
59
|
+
|
48
60
|
it "should run against local server" do
|
49
61
|
out = run_spec_via_druby(['--version'])
|
50
62
|
out.should =~ /rspec \d+\.\d+\.\d+.*/n
|
@@ -4,19 +4,26 @@ module Spec
|
|
4
4
|
module Runner
|
5
5
|
module Formatter
|
6
6
|
describe BaseFormatter do
|
7
|
-
subject {BaseFormatter.new(nil,
|
7
|
+
subject { BaseFormatter.new(nil,nil) }
|
8
|
+
it {should respond_to(:start ).with(1).argument }
|
9
|
+
it {should respond_to(:example_group_started).with(1).argument }
|
10
|
+
it {should respond_to(:example_started ).with(1).argument }
|
11
|
+
# -3 indicates that one of the arguments is optional, with a default
|
12
|
+
# value assigned. This is due to deprecated_pending_location. Once
|
13
|
+
# that is removed, this should be changed to 2.
|
14
|
+
it {should respond_to(:example_pending ).with(-3).arguments}
|
15
|
+
it {should respond_to(:example_passed ).with(1).argument }
|
16
|
+
it {should respond_to(:example_failed ).with(3).arguments}
|
17
|
+
it {should respond_to(:start_dump ).with(0).arguments}
|
18
|
+
it {should respond_to(:dump_failure ).with(2).arguments}
|
19
|
+
it {should respond_to(:dump_summary ).with(4).arguments}
|
20
|
+
it {should respond_to(:dump_pending ).with(0).arguments}
|
21
|
+
it {should respond_to(:close ).with(0).arguments}
|
8
22
|
|
9
|
-
it
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
it {should respond_to(:example_failed ).with(3).arguments}
|
14
|
-
it {should respond_to(:example_pending ).with(3).arguments}
|
15
|
-
it {should respond_to(:start_dump ).with(0).arguments}
|
16
|
-
it {should respond_to(:dump_failure ).with(2).arguments}
|
17
|
-
it {should respond_to(:dump_summary ).with(4).arguments}
|
18
|
-
it {should respond_to(:dump_pending ).with(0).arguments}
|
19
|
-
it {should respond_to(:close ).with(0).arguments}
|
23
|
+
it "deprecates add_example_group" do
|
24
|
+
Spec.should_receive(:deprecate)
|
25
|
+
subject.add_example_group(stub('example group'))
|
26
|
+
end
|
20
27
|
end
|
21
28
|
end
|
22
29
|
end
|
@@ -37,7 +37,7 @@ module Spec
|
|
37
37
|
|
38
38
|
context "#colourise" do
|
39
39
|
it "warns when subclasses call colourise" do
|
40
|
-
|
40
|
+
Spec.should_receive(:deprecate)
|
41
41
|
@formatter.method_that_class_colourise('this message', @failure)
|
42
42
|
end
|
43
43
|
|
@@ -49,7 +49,7 @@ module Spec
|
|
49
49
|
|
50
50
|
context "#magenta" do
|
51
51
|
it "warns when subclasses call magenta" do
|
52
|
-
|
52
|
+
Spec.should_receive(:deprecate).with(/#magenta/)
|
53
53
|
@formatter.method_that_class_magenta('this message')
|
54
54
|
end
|
55
55
|
|
@@ -15,9 +15,9 @@ module Spec
|
|
15
15
|
end
|
16
16
|
|
17
17
|
it "should add example name for each failure" do
|
18
|
-
formatter.
|
18
|
+
formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(Class.new(::Spec::Example::ExampleGroupDouble).describe("b 1")))
|
19
19
|
formatter.example_failed("e 1", nil, Spec::Runner::Reporter::Failure.new("g", nil, RuntimeError.new))
|
20
|
-
formatter.
|
20
|
+
formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(Class.new(::Spec::Example::ExampleGroupDouble).describe("b 2")))
|
21
21
|
formatter.example_failed("e 2", nil, Spec::Runner::Reporter::Failure.new("g", nil, RuntimeError.new))
|
22
22
|
formatter.example_failed("e 3", nil, Spec::Runner::Reporter::Failure.new("g", nil, RuntimeError.new))
|
23
23
|
io.string.should include("b 1")
|
@@ -29,13 +29,13 @@ module Spec
|
|
29
29
|
child_example_group = Class.new(parent_example_group).describe("#child_method")
|
30
30
|
grand_child_example_group = Class.new(child_example_group).describe("GrandChild")
|
31
31
|
|
32
|
-
formatter.
|
32
|
+
formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(grand_child_example_group))
|
33
33
|
formatter.example_failed("failure", nil, ::Spec::Runner::Reporter::Failure.new("g", nil, RuntimeError.new))
|
34
34
|
io.string.should == "Parent#child_method GrandChild\n"
|
35
35
|
end
|
36
36
|
|
37
37
|
it "should remove druby url, which is used by Spec::Distributed" do
|
38
|
-
@formatter.
|
38
|
+
@formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(Class.new(::Spec::Example::ExampleGroupDouble).describe("something something (druby://99.99.99.99:99)")))
|
39
39
|
@formatter.example_failed("e 1", nil, ::Spec::Runner::Reporter::Failure.new("g", nil, RuntimeError.new))
|
40
40
|
io.string.should == "something something\n"
|
41
41
|
end
|
@@ -15,9 +15,9 @@ module Spec
|
|
15
15
|
example_group_1 = Class.new(::Spec::Example::ExampleGroupDouble).describe("A")
|
16
16
|
example_group_2 = Class.new(example_group_1).describe("B")
|
17
17
|
|
18
|
-
@formatter.
|
18
|
+
@formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group_1))
|
19
19
|
@formatter.example_failed(example_group_1.it("a1"){}, nil, ::Spec::Runner::Reporter::Failure.new("g", nil, RuntimeError.new))
|
20
|
-
@formatter.
|
20
|
+
@formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group_2))
|
21
21
|
@formatter.example_failed(example_group_2.it("b2"){}, nil, ::Spec::Runner::Reporter::Failure.new("g", nil, RuntimeError.new))
|
22
22
|
@formatter.example_failed(example_group_2.it("b3"){}, nil, ::Spec::Runner::Reporter::Failure.new("g", nil, RuntimeError.new))
|
23
23
|
@io.string.should eql(<<-EOF
|
@@ -192,10 +192,10 @@ a {
|
|
192
192
|
<div class="failure" id="failure_1">
|
193
193
|
<div class="message"><pre>Mock 'poke me' expected :poke with (any args) once, but received it 0 times</pre></div>
|
194
194
|
<div class="backtrace"><pre>./examples/failing/mocking_example.rb:13:
|
195
|
-
/
|
196
|
-
|
197
|
-
|
198
|
-
|
195
|
+
./spec/spec/runner/formatter/../../../spec_helper.rb:43:in `run_with'
|
196
|
+
./spec/spec/runner/formatter/html_formatter_spec.rb:38:
|
197
|
+
./spec/spec/runner/formatter/html_formatter_spec.rb:26:in `chdir'
|
198
|
+
./spec/spec/runner/formatter/html_formatter_spec.rb:26:</pre></div>
|
199
199
|
<pre class="ruby"><code><span class="linenum">11</span> <span class="ident">it</span> <span class="punct">"</span><span class="string">should fail when expected message not received</span><span class="punct">"</span> <span class="keyword">do</span>
|
200
200
|
<span class="linenum">12</span> <span class="ident">mock</span> <span class="punct">=</span> <span class="ident">mock</span><span class="punct">("</span><span class="string">poke me</span><span class="punct">")</span>
|
201
201
|
<span class="offending"><span class="linenum">13</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">should_receive</span><span class="punct">(</span><span class="symbol">:poke</span><span class="punct">)</span></span>
|
@@ -209,10 +209,10 @@ a {
|
|
209
209
|
<div class="failure" id="failure_2">
|
210
210
|
<div class="message"><pre>Mock 'one two three' received :three out of order</pre></div>
|
211
211
|
<div class="backtrace"><pre>./examples/failing/mocking_example.rb:22:
|
212
|
-
/
|
213
|
-
|
214
|
-
|
215
|
-
|
212
|
+
./spec/spec/runner/formatter/../../../spec_helper.rb:43:in `run_with'
|
213
|
+
./spec/spec/runner/formatter/html_formatter_spec.rb:38:
|
214
|
+
./spec/spec/runner/formatter/html_formatter_spec.rb:26:in `chdir'
|
215
|
+
./spec/spec/runner/formatter/html_formatter_spec.rb:26:</pre></div>
|
216
216
|
<pre class="ruby"><code><span class="linenum">20</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">should_receive</span><span class="punct">(</span><span class="symbol">:three</span><span class="punct">).</span><span class="ident">ordered</span>
|
217
217
|
<span class="linenum">21</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">one</span>
|
218
218
|
<span class="offending"><span class="linenum">22</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">three</span></span>
|
@@ -226,10 +226,10 @@ a {
|
|
226
226
|
<div class="failure" id="failure_3">
|
227
227
|
<div class="message"><pre>Mock 'don't talk to me' expected :any_message_at_all with (no args) 0 times, but received it once</pre></div>
|
228
228
|
<div class="backtrace"><pre>./examples/failing/mocking_example.rb:29:
|
229
|
-
/
|
230
|
-
|
231
|
-
|
232
|
-
|
229
|
+
./spec/spec/runner/formatter/../../../spec_helper.rb:43:in `run_with'
|
230
|
+
./spec/spec/runner/formatter/html_formatter_spec.rb:38:
|
231
|
+
./spec/spec/runner/formatter/html_formatter_spec.rb:26:in `chdir'
|
232
|
+
./spec/spec/runner/formatter/html_formatter_spec.rb:26:</pre></div>
|
233
233
|
<pre class="ruby"><code><span class="linenum">27</span> <span class="ident">mock</span> <span class="punct">=</span> <span class="ident">mock</span><span class="punct">("</span><span class="string">don't talk to me</span><span class="punct">")</span>
|
234
234
|
<span class="linenum">28</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">should_not_receive</span><span class="punct">(</span><span class="symbol">:any_message_at_all</span><span class="punct">)</span>
|
235
235
|
<span class="offending"><span class="linenum">29</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">any_message_at_all</span></span>
|
@@ -242,10 +242,10 @@ a {
|
|
242
242
|
<div class="failure" id="failure_4">
|
243
243
|
<div class="message"><pre>Expected pending 'here is the bug' to fail. No Error was raised.</pre></div>
|
244
244
|
<div class="backtrace"><pre>./examples/failing/mocking_example.rb:33:
|
245
|
-
/
|
246
|
-
|
247
|
-
|
248
|
-
|
245
|
+
./spec/spec/runner/formatter/../../../spec_helper.rb:43:in `run_with'
|
246
|
+
./spec/spec/runner/formatter/html_formatter_spec.rb:38:
|
247
|
+
./spec/spec/runner/formatter/html_formatter_spec.rb:26:in `chdir'
|
248
|
+
./spec/spec/runner/formatter/html_formatter_spec.rb:26:</pre></div>
|
249
249
|
<pre class="ruby"><code><span class="linenum">31</span>
|
250
250
|
<span class="linenum">32</span> <span class="ident">it</span> <span class="punct">"</span><span class="string">has a bug we need to fix</span><span class="punct">"</span> <span class="keyword">do</span>
|
251
251
|
<span class="offending"><span class="linenum">33</span> <span class="ident">pending</span> <span class="punct">"</span><span class="string">here is the bug</span><span class="punct">"</span> <span class="keyword">do</span></span>
|
@@ -273,10 +273,10 @@ Diff:
|
|
273
273
|
framework for Ruby
|
274
274
|
</pre></div>
|
275
275
|
<div class="backtrace"><pre>./examples/failing/diffing_spec.rb:13:
|
276
|
-
/
|
277
|
-
|
278
|
-
|
279
|
-
|
276
|
+
./spec/spec/runner/formatter/../../../spec_helper.rb:43:in `run_with'
|
277
|
+
./spec/spec/runner/formatter/html_formatter_spec.rb:38:
|
278
|
+
./spec/spec/runner/formatter/html_formatter_spec.rb:26:in `chdir'
|
279
|
+
./spec/spec/runner/formatter/html_formatter_spec.rb:26:</pre></div>
|
280
280
|
<pre class="ruby"><code><span class="linenum">11</span><span class="ident">framework</span> <span class="keyword">for</span> <span class="constant">Ruby</span>
|
281
281
|
<span class="linenum">12</span><span class="constant">EOF</span>
|
282
282
|
<span class="offending"><span class="linenum">13</span> <span class="ident">usa</span><span class="punct">.</span><span class="ident">should</span> <span class="punct">==</span> <span class="ident">uk</span></span>
|
@@ -287,28 +287,25 @@ Diff:
|
|
287
287
|
<dd class="spec failed">
|
288
288
|
<span class="failed_spec_name">should print diff of different objects' pretty representation</span>
|
289
289
|
<div class="failure" id="failure_6">
|
290
|
-
<div class="message"><pre>
|
290
|
+
<div class="message"><pre>
|
291
|
+
expected <Animal
|
291
292
|
name=bob,
|
292
293
|
species=tortoise
|
293
294
|
>
|
294
|
-
|
295
|
+
|
296
|
+
got <Animal
|
295
297
|
name=bob,
|
296
298
|
species=giraffe
|
297
299
|
>
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
<Animal
|
302
|
-
name=bob,
|
303
|
-
-species=tortoise
|
304
|
-
+species=giraffe
|
305
|
-
>
|
300
|
+
|
301
|
+
|
302
|
+
(compared using eql?)
|
306
303
|
</pre></div>
|
307
304
|
<div class="backtrace"><pre>./examples/failing/diffing_spec.rb:34:
|
308
|
-
/
|
309
|
-
|
310
|
-
|
311
|
-
|
305
|
+
./spec/spec/runner/formatter/../../../spec_helper.rb:43:in `run_with'
|
306
|
+
./spec/spec/runner/formatter/html_formatter_spec.rb:38:
|
307
|
+
./spec/spec/runner/formatter/html_formatter_spec.rb:26:in `chdir'
|
308
|
+
./spec/spec/runner/formatter/html_formatter_spec.rb:26:</pre></div>
|
312
309
|
<pre class="ruby"><code><span class="linenum">32</span> <span class="ident">expected</span> <span class="punct">=</span> <span class="constant">Animal</span><span class="punct">.</span><span class="ident">new</span> <span class="punct">"</span><span class="string">bob</span><span class="punct">",</span> <span class="punct">"</span><span class="string">giraffe</span><span class="punct">"</span>
|
313
310
|
<span class="linenum">33</span> <span class="ident">actual</span> <span class="punct">=</span> <span class="constant">Animal</span><span class="punct">.</span><span class="ident">new</span> <span class="punct">"</span><span class="string">bob</span><span class="punct">",</span> <span class="punct">"</span><span class="string">tortoise</span><span class="punct">"</span>
|
314
311
|
<span class="offending"><span class="linenum">34</span> <span class="ident">expected</span><span class="punct">.</span><span class="ident">should</span> <span class="ident">eql</span><span class="punct">(</span><span class="ident">actual</span><span class="punct">)</span></span>
|
@@ -10,6 +10,7 @@ module Spec
|
|
10
10
|
module Formatter
|
11
11
|
describe HtmlFormatter do
|
12
12
|
attr_reader :root, :expected_file, :expected_html
|
13
|
+
|
13
14
|
before do
|
14
15
|
@root = File.expand_path("#{File.dirname(__FILE__)}/../../../..")
|
15
16
|
suffix = jruby? ? '-jruby' : ''
|
@@ -104,6 +105,25 @@ module Spec
|
|
104
105
|
html.should =~ /This was a dry-run/m
|
105
106
|
end
|
106
107
|
end
|
108
|
+
|
109
|
+
it "should have method_missing as private" do
|
110
|
+
HtmlFormatter.private_instance_methods.should include("method_missing")
|
111
|
+
end
|
112
|
+
|
113
|
+
it "should respond_to? all messages" do
|
114
|
+
formatter = HtmlFormatter.new({ }, StringIO.new)
|
115
|
+
formatter.should respond_to(:just_about_anything)
|
116
|
+
end
|
117
|
+
|
118
|
+
it "should respond_to? anything, when given the private flag" do
|
119
|
+
formatter = HtmlFormatter.new({ }, StringIO.new)
|
120
|
+
formatter.respond_to?(:method_missing, true).should be_true
|
121
|
+
end
|
122
|
+
|
123
|
+
it "should not respond_to? method_missing (because it's private)" do
|
124
|
+
formatter = HtmlFormatter.new({ }, StringIO.new)
|
125
|
+
formatter.respond_to?(:method_missing).should be_false
|
126
|
+
end
|
107
127
|
end
|
108
128
|
end
|
109
129
|
end
|
@@ -17,12 +17,12 @@ module Spec
|
|
17
17
|
end
|
18
18
|
|
19
19
|
describe "where ExampleGroup has no superclass with a description" do
|
20
|
-
def
|
21
|
-
formatter.
|
20
|
+
def example_group_started
|
21
|
+
formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group))
|
22
22
|
end
|
23
23
|
|
24
24
|
before do
|
25
|
-
|
25
|
+
example_group_started
|
26
26
|
end
|
27
27
|
|
28
28
|
describe "#dump_summary" do
|
@@ -49,7 +49,7 @@ OUT
|
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
|
-
describe "#
|
52
|
+
describe "#example_group_started" do
|
53
53
|
describe "when ExampleGroup has a nested description" do
|
54
54
|
|
55
55
|
describe "when ExampleGroup has no parents with nested description" do
|
@@ -60,13 +60,13 @@ OUT
|
|
60
60
|
|
61
61
|
describe "when ExampleGroup has one parent with nested description" do
|
62
62
|
attr_reader :child_example_group
|
63
|
-
def
|
63
|
+
def example_group_started
|
64
64
|
@child_example_group = Class.new(example_group).describe("Child ExampleGroup")
|
65
65
|
end
|
66
66
|
|
67
67
|
describe "and parent ExampleGroups have not been printed" do
|
68
68
|
before do
|
69
|
-
formatter.
|
69
|
+
formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(child_example_group))
|
70
70
|
end
|
71
71
|
|
72
72
|
it "should push ExampleGroup name with two spaces of indentation" do
|
@@ -79,9 +79,9 @@ OUT
|
|
79
79
|
|
80
80
|
describe "and parent ExampleGroups have been printed" do
|
81
81
|
before do
|
82
|
-
formatter.
|
82
|
+
formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group))
|
83
83
|
io.string = ""
|
84
|
-
formatter.
|
84
|
+
formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(child_example_group))
|
85
85
|
end
|
86
86
|
|
87
87
|
it "should print only the indented ExampleGroup" do
|
@@ -94,14 +94,14 @@ OUT
|
|
94
94
|
|
95
95
|
describe "when ExampleGroup has two parents with nested description" do
|
96
96
|
attr_reader :child_example_group, :grand_child_example_group
|
97
|
-
def
|
97
|
+
def example_group_started
|
98
98
|
@child_example_group = Class.new(example_group).describe("Child ExampleGroup")
|
99
99
|
@grand_child_example_group = Class.new(child_example_group).describe("GrandChild ExampleGroup")
|
100
100
|
end
|
101
101
|
|
102
102
|
describe "and parent ExampleGroups have not been printed" do
|
103
103
|
before do
|
104
|
-
formatter.
|
104
|
+
formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(grand_child_example_group))
|
105
105
|
|
106
106
|
end
|
107
107
|
|
@@ -116,9 +116,9 @@ OUT
|
|
116
116
|
|
117
117
|
describe "and parent ExampleGroups have been printed" do
|
118
118
|
before do
|
119
|
-
formatter.
|
119
|
+
formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(child_example_group))
|
120
120
|
io.string = ""
|
121
|
-
formatter.
|
121
|
+
formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(grand_child_example_group))
|
122
122
|
end
|
123
123
|
|
124
124
|
it "should print only the indented ExampleGroup" do
|
@@ -134,9 +134,9 @@ OUT
|
|
134
134
|
attr_reader :child_example_group
|
135
135
|
|
136
136
|
describe "and parent ExampleGroups have not been printed" do
|
137
|
-
def
|
137
|
+
def example_group_started
|
138
138
|
@child_example_group = Class.new(example_group)
|
139
|
-
formatter.
|
139
|
+
formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(child_example_group))
|
140
140
|
end
|
141
141
|
|
142
142
|
it "should render only the parent ExampleGroup" do
|
@@ -147,11 +147,11 @@ OUT
|
|
147
147
|
end
|
148
148
|
|
149
149
|
describe "and parent ExampleGroups have been printed" do
|
150
|
-
def
|
150
|
+
def example_group_started
|
151
151
|
@child_example_group = Class.new(example_group)
|
152
|
-
formatter.
|
152
|
+
formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group))
|
153
153
|
io.string = ""
|
154
|
-
formatter.
|
154
|
+
formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(child_example_group))
|
155
155
|
end
|
156
156
|
|
157
157
|
it "should not render anything" do
|
@@ -161,7 +161,7 @@ OUT
|
|
161
161
|
end
|
162
162
|
|
163
163
|
describe "when ExampleGroup nested description is blank" do
|
164
|
-
def
|
164
|
+
def example_group_started
|
165
165
|
example_group.set_description
|
166
166
|
super
|
167
167
|
end
|
@@ -206,10 +206,10 @@ OUT
|
|
206
206
|
describe "where ExampleGroup has two superclasses with a description" do
|
207
207
|
attr_reader :child_example_group, :grand_child_example_group
|
208
208
|
|
209
|
-
def
|
209
|
+
def example_group_started
|
210
210
|
@child_example_group = Class.new(example_group).describe("Child ExampleGroup")
|
211
211
|
@grand_child_example_group = Class.new(child_example_group).describe("GrandChild ExampleGroup")
|
212
|
-
formatter.
|
212
|
+
formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(grand_child_example_group))
|
213
213
|
end
|
214
214
|
|
215
215
|
describe "when having an error" do
|