rspec 1.1.4 → 1.1.5
Sign up to get free protection for your applications and to get access to all the features.
- data/{CHANGES → History.txt} +116 -64
- data/Manifest.txt +403 -0
- data/{MIT-LICENSE → README.txt} +43 -0
- data/Rakefile +39 -212
- data/{TODO → TODO.txt} +0 -0
- data/bin/autospec +4 -0
- data/bin/spec +1 -1
- data/examples/pure/yielding_example.rb +33 -0
- data/examples/stories/game-of-life/.loadpath +5 -0
- data/examples/stories/game-of-life/behaviour/everything.rb +1 -1
- data/examples/stories/game-of-life/behaviour/stories/CellsWithMoreThanThreeNeighboursDie.story +17 -17
- data/init.rb +9 -0
- data/lib/autotest/discover.rb +1 -1
- data/lib/autotest/rspec.rb +3 -29
- data/lib/spec.rb +10 -12
- data/lib/spec/adapters.rb +1 -0
- data/lib/spec/adapters/ruby_engine.rb +26 -0
- data/lib/spec/adapters/ruby_engine/mri.rb +8 -0
- data/lib/spec/adapters/ruby_engine/rubinius.rb +8 -0
- data/lib/spec/example/errors.rb +6 -0
- data/lib/spec/example/example_group_methods.rb +17 -14
- data/lib/spec/example/example_matcher.rb +2 -0
- data/lib/spec/example/example_methods.rb +4 -9
- data/lib/spec/example/module_inclusion_warnings.rb +2 -1
- data/lib/spec/expectations/extensions/object.rb +2 -2
- data/lib/spec/expectations/handler.rb +8 -16
- data/lib/spec/extensions/main.rb +2 -17
- data/lib/spec/matchers.rb +8 -2
- data/lib/spec/matchers/be.rb +0 -3
- data/lib/spec/matchers/change.rb +44 -40
- data/lib/spec/matchers/has.rb +1 -1
- data/lib/spec/matchers/have.rb +17 -12
- data/lib/spec/matchers/operator_matcher.rb +10 -4
- data/lib/spec/matchers/simple_matcher.rb +113 -10
- data/lib/spec/mocks.rb +1 -1
- data/lib/spec/mocks/argument_constraints.rb +185 -0
- data/lib/spec/mocks/argument_expectation.rb +35 -173
- data/lib/spec/mocks/framework.rb +1 -1
- data/lib/spec/mocks/message_expectation.rb +30 -5
- data/lib/spec/mocks/methods.rb +14 -2
- data/lib/spec/mocks/mock.rb +4 -0
- data/lib/spec/mocks/proxy.rb +46 -5
- data/lib/spec/mocks/spec_methods.rb +9 -1
- data/lib/spec/rake/spectask.rb +14 -22
- data/lib/spec/rake/verify_rcov.rb +3 -3
- data/lib/spec/runner.rb +18 -6
- data/lib/spec/runner/backtrace_tweaker.rb +6 -7
- data/lib/spec/runner/command_line.rb +6 -17
- data/lib/spec/runner/drb_command_line.rb +1 -1
- data/lib/spec/runner/formatter/base_formatter.rb +3 -1
- data/lib/spec/runner/formatter/base_text_formatter.rb +5 -9
- data/lib/spec/runner/formatter/html_formatter.rb +1 -1
- data/lib/spec/runner/formatter/nested_text_formatter.rb +1 -1
- data/lib/spec/runner/formatter/progress_bar_formatter.rb +2 -2
- data/lib/spec/runner/formatter/specdoc_formatter.rb +1 -1
- data/lib/spec/runner/formatter/story/html_formatter.rb +62 -16
- data/lib/spec/runner/formatter/story/plain_text_formatter.rb +68 -16
- data/lib/spec/runner/formatter/story/progress_bar_formatter.rb +42 -0
- data/lib/spec/runner/heckle_runner.rb +2 -2
- data/lib/spec/runner/option_parser.rb +2 -1
- data/lib/spec/runner/options.rb +18 -9
- data/lib/spec/runner/reporter.rb +24 -4
- data/lib/spec/runner/spec_parser.rb +1 -1
- data/lib/spec/story/runner.rb +1 -2
- data/lib/spec/story/runner/story_mediator.rb +14 -0
- data/lib/spec/story/runner/story_parser.rb +20 -0
- data/lib/spec/story/step.rb +40 -28
- data/lib/spec/story/step_mother.rb +2 -1
- data/lib/spec/story/world.rb +6 -2
- data/lib/spec/version.rb +13 -22
- data/rake_tasks/failing_examples_with_html.rake +1 -1
- data/rake_tasks/verify_rcov.rake +2 -2
- data/rspec.gemspec +33 -0
- data/spec/autotest/rspec_spec.rb +90 -141
- data/spec/spec/adapters/ruby_engine_spec.rb +16 -0
- data/spec/spec/example/base_formatter_spec.rb +112 -0
- data/spec/spec/example/example_group_factory_spec.rb +2 -2
- data/spec/spec/example/example_group_methods_spec.rb +55 -4
- data/spec/spec/example/example_group_spec.rb +4 -3
- data/spec/spec/example/example_methods_spec.rb +18 -14
- data/spec/spec/example/pending_module_spec.rb +38 -0
- data/spec/spec/example/shared_example_group_spec.rb +1 -1
- data/spec/spec/expectations/extensions/object_spec.rb +0 -12
- data/spec/spec/extensions/main_spec.rb +3 -8
- data/spec/spec/matchers/change_spec.rb +16 -6
- data/spec/spec/matchers/handler_spec.rb +58 -37
- data/spec/spec/matchers/has_spec.rb +10 -0
- data/spec/spec/matchers/have_spec.rb +105 -2
- data/spec/spec/matchers/operator_matcher_spec.rb +35 -2
- data/spec/spec/matchers/simple_matcher_spec.rb +64 -2
- data/spec/spec/mocks/any_number_of_times_spec.rb +7 -0
- data/spec/spec/mocks/bug_report_496.rb +17 -0
- data/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +7 -1
- data/spec/spec/mocks/hash_including_matcher_spec.rb +45 -24
- data/spec/spec/mocks/mock_spec.rb +55 -10
- data/spec/spec/mocks/nil_expectation_warning_spec.rb +54 -0
- data/spec/spec/mocks/null_object_mock_spec.rb +14 -0
- data/spec/spec/mocks/options_hash_spec.rb +18 -28
- data/spec/spec/mocks/partial_mock_spec.rb +2 -0
- data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +20 -6
- data/spec/spec/mocks/stub_spec.rb +7 -0
- data/spec/spec/runner/command_line_spec.rb +5 -12
- data/spec/spec/runner/drb_command_line_spec.rb +13 -6
- data/spec/spec/runner/formatter/html_formatter_spec.rb +2 -1
- data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +3 -3
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +20 -2
- data/spec/spec/runner/formatter/spec_mate_formatter_spec.rb +2 -1
- data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +3 -3
- data/spec/spec/runner/formatter/story/html_formatter_spec.rb +76 -2
- data/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +161 -0
- data/spec/spec/runner/formatter/story/progress_bar_formatter_spec.rb +82 -0
- data/spec/spec/runner/heckle_runner_spec.rb +8 -8
- data/spec/spec/runner/option_parser_spec.rb +21 -6
- data/spec/spec/runner/output_one_time_fixture_runner.rb +1 -1
- data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +6 -0
- data/spec/spec/runner/reporter_spec.rb +51 -5
- data/spec/spec/runner/spec_parser_spec.rb +4 -4
- data/spec/spec/story/runner/plain_text_story_runner_spec.rb +2 -5
- data/spec/spec/story/runner/story_mediator_spec.rb +10 -0
- data/spec/spec/story/runner/story_parser_spec.rb +23 -6
- data/spec/spec/story/scenario_spec.rb +1 -3
- data/spec/spec/story/step_mother_spec.rb +12 -0
- data/spec/spec/story/step_spec.rb +57 -4
- data/spec/spec/story/story_spec.rb +1 -3
- data/spec/spec/story/world_spec.rb +1 -1
- data/spec/spec_helper.rb +21 -68
- data/stories/all.rb +1 -1
- data/stories/configuration/before_blocks.story +21 -0
- data/stories/configuration/stories.rb +7 -0
- data/stories/example_groups/stories.rb +3 -4
- data/stories/resources/spec/before_blocks_example.rb +32 -0
- data/stories/stories/multiline_steps.story +23 -0
- data/stories/stories/steps/multiline_steps.rb +13 -0
- data/stories/stories/stories.rb +6 -0
- data/story_server/prototype/javascripts/builder.js +136 -0
- data/story_server/prototype/javascripts/controls.js +972 -0
- data/story_server/prototype/javascripts/dragdrop.js +976 -0
- data/story_server/prototype/javascripts/effects.js +1117 -0
- data/story_server/prototype/javascripts/prototype.js +4140 -0
- data/story_server/prototype/javascripts/rspec.js +149 -0
- data/story_server/prototype/javascripts/scriptaculous.js +58 -0
- data/story_server/prototype/javascripts/slider.js +276 -0
- data/story_server/prototype/javascripts/sound.js +55 -0
- data/story_server/prototype/javascripts/unittest.js +568 -0
- data/story_server/prototype/lib/server.rb +24 -0
- data/story_server/prototype/stories.html +176 -0
- data/story_server/prototype/stylesheets/rspec.css +136 -0
- data/story_server/prototype/stylesheets/test.css +90 -0
- metadata +166 -166
- data/README +0 -36
- data/UPGRADE +0 -7
- data/bin/spec_translator +0 -8
- data/lib/spec/mocks/argument_constraint_matchers.rb +0 -31
- data/lib/spec/translator.rb +0 -114
- data/spec/spec/example/example_spec.rb +0 -53
- data/spec/spec/runner/execution_context_spec.rb +0 -37
- data/spec/spec/translator_spec.rb +0 -265
@@ -2,31 +2,52 @@ require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
|
2
2
|
|
3
3
|
module Spec
|
4
4
|
module Mocks
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
it "should not match a non-hash" do
|
12
|
-
hash_including(:a => 1).matches?(1).should_not be_true
|
13
|
-
end
|
5
|
+
module ArgumentConstraints
|
6
|
+
describe HashIncludingConstraint do
|
7
|
+
|
8
|
+
it "should describe itself properly" do
|
9
|
+
HashIncludingConstraint.new(:a => 1).description.should == "hash_including(:a=>1)"
|
10
|
+
end
|
14
11
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
it "should not match a hash with a missing key" do
|
20
|
-
hash_including(:a => 1).matches?(:b => 2).should_not be_true
|
21
|
-
end
|
12
|
+
describe "passing" do
|
13
|
+
it "should match the same hash" do
|
14
|
+
hash_including(:a => 1).should == {:a => 1}
|
15
|
+
end
|
22
16
|
|
23
|
-
|
24
|
-
|
25
|
-
|
17
|
+
it "should match a hash with extra stuff" do
|
18
|
+
hash_including(:a => 1).should == {:a => 1, :b => 2}
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "when matching against other constraints" do
|
22
|
+
it "should match an int against anything()" do
|
23
|
+
hash_including(:a => anything, :b => 2).should == {:a => 1, :b => 2}
|
24
|
+
end
|
26
25
|
|
27
|
-
|
28
|
-
|
29
|
-
|
26
|
+
it "should match a string against anything()" do
|
27
|
+
hash_including(:a => anything, :b => 2).should == {:a => "1", :b => 2}
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "failing" do
|
33
|
+
it "should not match a non-hash" do
|
34
|
+
hash_including(:a => 1).should_not == 1
|
35
|
+
end
|
36
|
+
|
37
|
+
|
38
|
+
it "should not match a hash with a missing key" do
|
39
|
+
hash_including(:a => 1).should_not == {:b => 2}
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should not match a hash with an incorrect value" do
|
43
|
+
hash_including(:a => 1, :b => 2).should_not == {:a => 1, :b => 3}
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should not match when values are nil but keys are different" do
|
47
|
+
hash_including(:a => nil).should_not == {:b => nil}
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
30
51
|
end
|
31
|
-
|
32
|
-
end
|
52
|
+
end
|
53
|
+
end
|
@@ -23,6 +23,18 @@ module Spec
|
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
|
+
it "should report line number of expectation of unreceived message after #should_receive after similar stub" do
|
27
|
+
@mock.stub!(:wont_happen)
|
28
|
+
expected_error_line = __LINE__; @mock.should_receive(:wont_happen).with("x", 3)
|
29
|
+
begin
|
30
|
+
@mock.rspec_verify
|
31
|
+
violated
|
32
|
+
rescue MockExpectationError => e
|
33
|
+
# NOTE - this regexp ended w/ $, but jruby adds extra info at the end of the line
|
34
|
+
e.backtrace[0].should match(/#{File.basename(__FILE__)}:#{expected_error_line}/)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
26
38
|
it "should pass when not receiving message specified as not to be received" do
|
27
39
|
@mock.should_not_receive(:not_expected)
|
28
40
|
@mock.rspec_verify
|
@@ -403,7 +415,16 @@ module Spec
|
|
403
415
|
@mock.msg.should equal(:stub_value)
|
404
416
|
@mock.rspec_verify
|
405
417
|
end
|
406
|
-
|
418
|
+
|
419
|
+
it "should not require a different signature to replace a method stub" do
|
420
|
+
@mock.stub!(:msg).and_return(:stub_value)
|
421
|
+
@mock.should_receive(:msg).and_return(:mock_value)
|
422
|
+
@mock.msg(:arg).should equal(:mock_value)
|
423
|
+
@mock.msg.should equal(:stub_value)
|
424
|
+
@mock.msg.should equal(:stub_value)
|
425
|
+
@mock.rspec_verify
|
426
|
+
end
|
427
|
+
|
407
428
|
it "should temporarily replace a method stub on a non-mock" do
|
408
429
|
non_mock = Object.new
|
409
430
|
non_mock.stub!(:msg).and_return(:stub_value)
|
@@ -413,7 +434,22 @@ module Spec
|
|
413
434
|
non_mock.msg.should equal(:stub_value)
|
414
435
|
non_mock.rspec_verify
|
415
436
|
end
|
416
|
-
|
437
|
+
|
438
|
+
it "should return the stubbed value when no new value specified" do
|
439
|
+
@mock.stub!(:msg).and_return(:stub_value)
|
440
|
+
@mock.should_receive(:msg)
|
441
|
+
@mock.msg.should equal(:stub_value)
|
442
|
+
@mock.rspec_verify
|
443
|
+
end
|
444
|
+
|
445
|
+
it "should not mess with the stub's yielded values when also mocked" do
|
446
|
+
@mock.stub!(:yield_back).and_yield(:stub_value)
|
447
|
+
@mock.should_receive(:yield_back).and_yield(:mock_value)
|
448
|
+
@mock.yield_back{|v| v}.should == :mock_value
|
449
|
+
@mock.yield_back{|v| v}.should == :stub_value
|
450
|
+
@mock.rspec_verify
|
451
|
+
end
|
452
|
+
|
417
453
|
it "should assign stub return values" do
|
418
454
|
mock = Mock.new('name', :message => :response)
|
419
455
|
mock.message.should == :response
|
@@ -439,6 +475,15 @@ module Spec
|
|
439
475
|
@calls.should == 1
|
440
476
|
end
|
441
477
|
|
478
|
+
it "should call the block after #should_receive after a similar stub" do
|
479
|
+
@mock.stub!(:foo).and_return(:bar)
|
480
|
+
@mock.should_receive(:foo) { add_call }
|
481
|
+
|
482
|
+
@mock.foo
|
483
|
+
|
484
|
+
@calls.should == 1
|
485
|
+
end
|
486
|
+
|
442
487
|
it "should call the block after #once" do
|
443
488
|
@mock.should_receive(:foo).once { add_call }
|
444
489
|
|
@@ -472,14 +517,6 @@ module Spec
|
|
472
517
|
@calls.should == 7
|
473
518
|
end
|
474
519
|
|
475
|
-
it "should call the block after #with" do
|
476
|
-
@mock.should_receive(:foo).with(:arg) { add_call }
|
477
|
-
|
478
|
-
@mock.foo(:arg)
|
479
|
-
|
480
|
-
@calls.should == 1
|
481
|
-
end
|
482
|
-
|
483
520
|
it "should call the block after #ordered" do
|
484
521
|
@mock.should_receive(:foo).ordered { add_call }
|
485
522
|
@mock.should_receive(:bar).ordered { add_call }
|
@@ -490,5 +527,13 @@ module Spec
|
|
490
527
|
@calls.should == 2
|
491
528
|
end
|
492
529
|
end
|
530
|
+
|
531
|
+
describe 'string representation generated by #to_s' do
|
532
|
+
it 'should not contain < because that might lead to invalid HTML in some situations' do
|
533
|
+
mock = mock("Dog")
|
534
|
+
valid_html_str = "#{mock}"
|
535
|
+
valid_html_str.should_not include('<')
|
536
|
+
end
|
537
|
+
end
|
493
538
|
end
|
494
539
|
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
+
|
3
|
+
module Spec
|
4
|
+
module Mocks
|
5
|
+
|
6
|
+
describe "an expectation set on nil" do
|
7
|
+
|
8
|
+
it "should issue a warning with file and line number information" do
|
9
|
+
expected_warning = "An expectation of :foo was set on nil. Called from #{__FILE__}:#{__LINE__+3}. Use allow_message_expectations_on_nil to disable warnings."
|
10
|
+
Kernel.should_receive(:warn).with(expected_warning)
|
11
|
+
|
12
|
+
nil.should_receive(:foo)
|
13
|
+
nil.foo
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should issue a warning when the expectation is negative" do
|
17
|
+
Kernel.should_receive(:warn)
|
18
|
+
|
19
|
+
nil.should_not_receive(:foo)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should not issue a warning when expectations are set to be allowed" do
|
23
|
+
allow_message_expectations_on_nil
|
24
|
+
Kernel.should_not_receive(:warn)
|
25
|
+
|
26
|
+
nil.should_receive(:foo)
|
27
|
+
nil.should_not_receive(:bar)
|
28
|
+
nil.foo
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "#allow_message_expectations_on_nil" do
|
34
|
+
include SandboxedOptions
|
35
|
+
|
36
|
+
it "should not effect subsequent examples" do
|
37
|
+
example_group = Class.new(ExampleGroup)
|
38
|
+
example_group.it("when called in one example that doesn't end up setting an expectation on nil") do
|
39
|
+
allow_message_expectations_on_nil
|
40
|
+
end
|
41
|
+
example_group.it("should not effect the next exapmle ran") do
|
42
|
+
Kernel.should_receive(:warn)
|
43
|
+
nil.should_receive(:foo)
|
44
|
+
nil.foo
|
45
|
+
end
|
46
|
+
|
47
|
+
example_group.run.should be_true
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
end
|
@@ -36,5 +36,19 @@ module Spec
|
|
36
36
|
@mock.message(:unexpected_arg)
|
37
37
|
end
|
38
38
|
end
|
39
|
+
|
40
|
+
describe "#null_object?" do
|
41
|
+
it "should default to false" do
|
42
|
+
obj = mock('anything')
|
43
|
+
obj.should_not be_null_object
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe "#as_null_object" do
|
48
|
+
it "should set the object to null_object" do
|
49
|
+
obj = mock('anything').as_null_object
|
50
|
+
obj.should be_null_object
|
51
|
+
end
|
52
|
+
end
|
39
53
|
end
|
40
54
|
end
|
@@ -3,42 +3,32 @@ require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
|
3
3
|
module Spec
|
4
4
|
module Mocks
|
5
5
|
describe "calling :should_receive with an options hash" do
|
6
|
-
it_should_behave_like "sandboxed rspec_options"
|
7
|
-
attr_reader :reporter, :example_group
|
8
|
-
before do
|
9
|
-
@reporter = ::Spec::Runner::Reporter.new(options)
|
10
|
-
@example_group = Class.new(::Spec::Example::ExampleGroup) do
|
11
|
-
plugin_mock_framework
|
12
|
-
describe("Some Examples")
|
13
|
-
end
|
14
|
-
reporter.add_example_group example_group
|
15
|
-
end
|
16
|
-
|
17
6
|
it "should report the file and line submitted with :expected_from" do
|
18
|
-
|
7
|
+
begin
|
19
8
|
mock = Spec::Mocks::Mock.new("a mock")
|
20
9
|
mock.should_receive(:message, :expected_from => "/path/to/blah.ext:37")
|
21
10
|
mock.rspec_verify
|
11
|
+
rescue => e
|
12
|
+
ensure
|
13
|
+
e.backtrace.to_s.should =~ /\/path\/to\/blah.ext:37/m
|
22
14
|
end
|
23
|
-
example = example_group.new(example_definition)
|
24
|
-
|
25
|
-
reporter.should_receive(:example_finished) do |spec, error|
|
26
|
-
error.backtrace.detect {|line| line =~ /\/path\/to\/blah.ext:37/}.should_not be_nil
|
27
|
-
end
|
28
|
-
example.execute(options, {})
|
29
15
|
end
|
30
16
|
|
31
17
|
it "should use the message supplied with :message" do
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
18
|
+
lambda {
|
19
|
+
m = Spec::Mocks::Mock.new("a mock")
|
20
|
+
m.should_receive(:message, :message => "recebi nada")
|
21
|
+
m.rspec_verify
|
22
|
+
}.should raise_error("recebi nada")
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should use the message supplied with :message after a similar stub" do
|
26
|
+
lambda {
|
27
|
+
m = Spec::Mocks::Mock.new("a mock")
|
28
|
+
m.stub!(:message)
|
29
|
+
m.should_receive(:message, :message => "from mock")
|
30
|
+
m.rspec_verify
|
31
|
+
}.should raise_error("from mock")
|
42
32
|
end
|
43
33
|
end
|
44
34
|
end
|
@@ -116,9 +116,28 @@ module Spec
|
|
116
116
|
end
|
117
117
|
|
118
118
|
end
|
119
|
+
|
120
|
+
describe Methods, "handling block constraints" do
|
121
|
+
it_should_behave_like "mock argument constraints"
|
122
|
+
|
123
|
+
it "should match arguments against RSpec expectations" do
|
124
|
+
@mock.should_receive(:random_call).with {|arg1, arg2, arr, *rest|
|
125
|
+
arg1.should == 5
|
126
|
+
arg2.should have_at_least(3).characters
|
127
|
+
arg2.should have_at_most(10).characters
|
128
|
+
arr.map {|i| i * 2}.should == [2,4,6]
|
129
|
+
rest.should == [:fee, "fi", 4]
|
130
|
+
}
|
131
|
+
@mock.random_call 5, "hello", [1,2,3], :fee, "fi", 4
|
132
|
+
end
|
133
|
+
end
|
119
134
|
|
120
135
|
describe Methods, "handling non-constraint arguments" do
|
121
|
-
|
136
|
+
|
137
|
+
before(:each) do
|
138
|
+
@mock = Mock.new("test mock")
|
139
|
+
end
|
140
|
+
|
122
141
|
it "should match non special symbol (can be removed when deprecated symbols are removed)" do
|
123
142
|
@mock.should_receive(:random_call).with(:some_symbol)
|
124
143
|
@mock.random_call(:some_symbol)
|
@@ -150,11 +169,6 @@ module Spec
|
|
150
169
|
@mock.should_receive(:random_call).with(:a => "a", :b => "b")
|
151
170
|
@mock.random_call(opts)
|
152
171
|
end
|
153
|
-
|
154
|
-
it "should match against a Matcher" do
|
155
|
-
@mock.should_receive(:msg).with(equal(37))
|
156
|
-
@mock.msg(37)
|
157
|
-
end
|
158
172
|
end
|
159
173
|
end
|
160
174
|
end
|
@@ -14,6 +14,7 @@ module Spec
|
|
14
14
|
end
|
15
15
|
end
|
16
16
|
@instance = @class.new
|
17
|
+
@stub = Object.new
|
17
18
|
end
|
18
19
|
|
19
20
|
it "should return expected value when expected message is received" do
|
@@ -44,6 +45,12 @@ module Spec
|
|
44
45
|
@instance.rspec_verify
|
45
46
|
end.should_not raise_error
|
46
47
|
end
|
48
|
+
|
49
|
+
it "should handle multiple stubbed methods" do
|
50
|
+
@instance.stub!(:msg1 => 1, :msg2 => 2)
|
51
|
+
@instance.msg1.should == 1
|
52
|
+
@instance.msg2.should == 2
|
53
|
+
end
|
47
54
|
|
48
55
|
it "should clear itself when verified" do
|
49
56
|
@instance.stub!(:this_should_go).and_return(:blah)
|
@@ -3,16 +3,16 @@ require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
|
3
3
|
module Spec
|
4
4
|
module Runner
|
5
5
|
describe CommandLine, ".run" do
|
6
|
-
|
6
|
+
include SandboxedOptions
|
7
7
|
attr_reader :options, :err, :out
|
8
8
|
before do
|
9
9
|
@err = options.error_stream
|
10
10
|
@out = options.output_stream
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
it "should run directory" do
|
14
14
|
file = File.dirname(__FILE__) + '/../../../examples/pure'
|
15
|
-
|
15
|
+
run_with(OptionParser.parse([file,"-p","**/*.rb"], @err, @out))
|
16
16
|
|
17
17
|
@out.rewind
|
18
18
|
@out.read.should =~ /\d+ examples, 0 failures, 3 pending/n
|
@@ -20,7 +20,7 @@ module Spec
|
|
20
20
|
|
21
21
|
it "should run file" do
|
22
22
|
file = File.dirname(__FILE__) + '/../../../failing_examples/predicate_example.rb'
|
23
|
-
|
23
|
+
run_with(OptionParser.parse([file], @err, @out))
|
24
24
|
|
25
25
|
@out.rewind
|
26
26
|
@out.read.should =~ /2 examples, 1 failure/n
|
@@ -130,18 +130,11 @@ module Spec
|
|
130
130
|
options.reporter.should_receive(:add_example_group).with(example_group)
|
131
131
|
|
132
132
|
options.add_example_group example_group
|
133
|
-
|
133
|
+
run_with(options)
|
134
134
|
|
135
135
|
should_has_run.should be_true
|
136
136
|
should_not_has_run.should be_false
|
137
137
|
end
|
138
|
-
|
139
|
-
it "sets Spec.run to true" do
|
140
|
-
::Spec.run = false
|
141
|
-
::Spec.should_not be_run
|
142
|
-
Spec::Runner::CommandLine.run(OptionParser.parse([], @err, @out))
|
143
|
-
::Spec.should be_run
|
144
|
-
end
|
145
138
|
end
|
146
139
|
end
|
147
140
|
end
|
@@ -3,6 +3,8 @@ require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
|
3
3
|
module Spec
|
4
4
|
module Runner
|
5
5
|
describe DrbCommandLine, "without running local server" do
|
6
|
+
include SandboxedOptions
|
7
|
+
|
6
8
|
unless Config::CONFIG['ruby_install_name'] == 'jruby'
|
7
9
|
it "should print error when there is no running local server" do
|
8
10
|
err = StringIO.new
|
@@ -15,18 +17,22 @@ module Spec
|
|
15
17
|
end
|
16
18
|
end
|
17
19
|
|
18
|
-
|
19
|
-
describe DrbCommandLine, "with local server"
|
20
|
+
describe "with local server" do
|
20
21
|
|
21
22
|
class CommandLineForSpec
|
22
23
|
def self.run(argv, stderr, stdout)
|
23
|
-
|
24
|
+
orig_options = Spec::Runner.options
|
25
|
+
tmp_options = OptionParser.parse(argv, stderr, stdout)
|
26
|
+
Spec::Runner.use tmp_options
|
27
|
+
Spec::Runner::CommandLine.run(tmp_options)
|
28
|
+
ensure
|
29
|
+
Spec::Runner.use orig_options
|
24
30
|
end
|
25
31
|
end
|
26
32
|
|
27
33
|
unless Config::CONFIG['ruby_install_name'] == 'jruby'
|
28
34
|
before(:all) do
|
29
|
-
DRb.start_service("druby://
|
35
|
+
DRb.start_service("druby://127.0.0.1:8989", CommandLineForSpec)
|
30
36
|
@@drb_example_file_counter = 0
|
31
37
|
end
|
32
38
|
|
@@ -45,7 +51,7 @@ module Spec
|
|
45
51
|
|
46
52
|
it "should run against local server" do
|
47
53
|
out = run_spec_via_druby(['--version'])
|
48
|
-
out.should =~ /
|
54
|
+
out.should =~ /rspec version \d+\.\d+\.\d+.*/n
|
49
55
|
end
|
50
56
|
|
51
57
|
it "should output green colorized text when running with --colour option" do
|
@@ -86,7 +92,8 @@ module Spec
|
|
86
92
|
out.rewind; out.read
|
87
93
|
end
|
88
94
|
end
|
89
|
-
|
95
|
+
|
90
96
|
end
|
97
|
+
|
91
98
|
end
|
92
99
|
end
|