rspec 1.1.11 → 1.1.12
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/.autotest +4 -0
- data/History.txt +55 -0
- data/Manifest.txt +102 -122
- data/README.txt +30 -12
- data/Rakefile +10 -10
- data/TODO.txt +10 -2
- data/{failing_examples → examples/failing}/README.txt +0 -0
- data/{failing_examples → examples/failing}/diffing_spec.rb +0 -0
- data/{failing_examples → examples/failing}/failing_autogenerated_docstrings_example.rb +0 -0
- data/{failing_examples/failure_in_teardown.rb → examples/failing/failure_in_after.rb} +1 -1
- data/{failing_examples/failure_in_setup.rb → examples/failing/failure_in_before.rb} +1 -1
- data/{failing_examples → examples/failing}/mocking_example.rb +0 -0
- data/{failing_examples → examples/failing}/mocking_with_flexmock.rb +0 -0
- data/{failing_examples → examples/failing}/mocking_with_mocha.rb +0 -0
- data/{failing_examples → examples/failing}/mocking_with_rr.rb +0 -0
- data/{failing_examples → examples/failing}/partial_mock_example.rb +0 -0
- data/{failing_examples → examples/failing}/predicate_example.rb +5 -0
- data/{failing_examples → examples/failing}/raising_example.rb +0 -0
- data/{failing_examples → examples/failing}/spec_helper.rb +1 -1
- data/{failing_examples → examples/failing}/syntax_error_example.rb +0 -0
- data/{failing_examples → examples/failing}/team_spec.rb +0 -0
- data/{failing_examples → examples/failing}/timeout_behaviour.rb +0 -0
- data/examples/{pure → passing}/autogenerated_docstrings_example.rb +6 -0
- data/examples/{pure → passing}/before_and_after_example.rb +0 -0
- data/examples/{pure → passing}/behave_as_example.rb +0 -0
- data/examples/{pure → passing}/custom_expectation_matchers.rb +0 -0
- data/examples/{pure → passing}/custom_formatter.rb +1 -1
- data/examples/{pure → passing}/dynamic_spec.rb +2 -2
- data/examples/{pure → passing}/file_accessor.rb +0 -0
- data/examples/{pure → passing}/file_accessor_spec.rb +0 -0
- data/examples/{pure → passing}/greeter_spec.rb +0 -0
- data/examples/{pure → passing}/helper_method_example.rb +0 -0
- data/examples/{pure → passing}/io_processor.rb +0 -0
- data/examples/{pure → passing}/io_processor_spec.rb +0 -0
- data/examples/{pure → passing}/legacy_spec.rb +0 -0
- data/examples/{pure → passing}/mocking_example.rb +0 -0
- data/examples/{pure/multi_threaded_behaviour_runner.rb → passing/multi_threaded_example_group_runner.rb} +1 -3
- data/examples/{pure → passing}/nested_classes_example.rb +0 -0
- data/examples/{pure → passing}/partial_mock_example.rb +0 -0
- data/examples/{pure → passing}/pending_example.rb +0 -0
- data/examples/{pure → passing}/predicate_example.rb +0 -0
- data/examples/{pure → passing}/priority.txt +0 -0
- data/examples/{pure → passing}/shared_example_group_example.rb +0 -0
- data/examples/{pure → passing}/shared_stack_examples.rb +1 -3
- data/examples/passing/simple_matcher_example.rb +31 -0
- data/examples/{pure → passing}/spec_helper.rb +0 -0
- data/examples/{pure → passing}/stack.rb +0 -0
- data/examples/{pure → passing}/stack_spec.rb +3 -2
- data/examples/{pure → passing}/stack_spec_with_nested_example_groups.rb +0 -0
- data/examples/{pure → passing}/stubbing_example.rb +0 -0
- data/examples/{pure → passing}/yielding_example.rb +0 -0
- data/examples/ruby1.9.compatibility/access_to_constants_spec.rb +86 -0
- data/features/before_and_after_blocks/before_and_after_blocks.feature +168 -0
- data/{stories/example_groups/autogenerated_docstrings → features/example_groups/autogenerated_docstrings.feature} +5 -5
- data/{stories/example_groups/example_group_with_should_methods → features/example_groups/example_group_with_should_methods.feature} +3 -3
- data/{stories/example_groups/nested_groups → features/example_groups/nested_groups.feature} +4 -4
- data/{stories/example_groups/output → features/example_groups/output.feature} +3 -8
- data/{stories/interop/examples_and_tests_together → features/interop/examples_and_tests_together.feature} +5 -4
- data/features/interop/test_but_not_test_unit.feature +14 -0
- data/{stories/interop/test_case_with_should_methods → features/interop/test_case_with_should_methods.feature} +2 -2
- data/{stories/mock_framework_integration/use_flexmock.story → features/mock_framework_integration/use_flexmock.feature} +1 -1
- data/features/step_definitions/running_rspec.rb +54 -0
- data/features/support/env.rb +26 -0
- data/{stories/resources → features/support}/helpers/cmdline.rb +0 -0
- data/{stories/resources → features/support}/helpers/story_helper.rb +1 -1
- data/{stories/resources → features/support}/matchers/smart_match.rb +0 -0
- data/{plugins → lib/adapters}/mock_frameworks/flexmock.rb +1 -1
- data/{plugins → lib/adapters}/mock_frameworks/mocha.rb +1 -1
- data/{plugins → lib/adapters}/mock_frameworks/rr.rb +1 -1
- data/{plugins → lib/adapters}/mock_frameworks/rspec.rb +2 -2
- data/lib/autotest/rspec.rb +4 -3
- data/lib/spec.rb +2 -27
- data/lib/spec/dsl.rb +1 -0
- data/lib/spec/{extensions → dsl}/main.rb +10 -10
- data/lib/spec/example.rb +175 -1
- data/lib/spec/example/before_and_after_hooks.rb +30 -24
- data/lib/spec/example/example_group.rb +1 -0
- data/lib/spec/example/example_group_factory.rb +26 -9
- data/lib/spec/example/example_group_methods.rb +138 -113
- data/lib/spec/example/example_methods.rb +88 -25
- data/lib/spec/example/shared_example_group.rb +28 -21
- data/lib/spec/expectations.rb +22 -18
- data/lib/spec/expectations/handler.rb +16 -36
- data/lib/spec/interop/test/unit/testcase.rb +19 -17
- data/lib/spec/interop/test/unit/testresult.rb +1 -1
- data/lib/spec/interop/test/unit/testsuite_adapter.rb +1 -1
- data/lib/spec/matchers.rb +7 -28
- data/lib/spec/matchers/be.rb +103 -116
- data/lib/spec/matchers/be_close.rb +6 -22
- data/lib/spec/matchers/eql.rb +7 -25
- data/lib/spec/matchers/equal.rb +7 -25
- data/lib/spec/matchers/errors.rb +5 -0
- data/lib/spec/matchers/exist.rb +8 -14
- data/lib/spec/matchers/generated_descriptions.rb +48 -0
- data/lib/spec/matchers/has.rb +12 -28
- data/lib/spec/matchers/include.rb +12 -9
- data/lib/spec/matchers/match.rb +8 -27
- data/lib/spec/matchers/match_array.rb +79 -0
- data/lib/spec/matchers/method_missing.rb +9 -0
- data/lib/spec/matchers/operator_matcher.rb +39 -48
- data/lib/spec/matchers/raise_error.rb +4 -8
- data/lib/spec/matchers/respond_to.rb +33 -8
- data/lib/spec/matchers/throw_symbol.rb +49 -17
- data/lib/spec/matchers/wrap_expectation.rb +55 -0
- data/lib/spec/mocks/argument_constraints.rb +77 -5
- data/lib/spec/mocks/message_expectation.rb +7 -7
- data/lib/spec/mocks/proxy.rb +14 -12
- data/lib/spec/rake/spectask.rb +4 -6
- data/lib/spec/ruby.rb +9 -0
- data/lib/spec/runner.rb +37 -162
- data/lib/spec/runner/backtrace_tweaker.rb +5 -3
- data/lib/spec/runner/class_and_arguments_parser.rb +7 -9
- data/lib/spec/runner/command_line.rb +6 -8
- data/lib/spec/{example → runner}/configuration.rb +46 -47
- data/lib/spec/runner/example_group_runner.rb +15 -4
- data/lib/spec/runner/formatter/base_text_formatter.rb +4 -3
- data/lib/spec/runner/formatter/html_formatter.rb +14 -11
- data/lib/spec/runner/formatter/nested_text_formatter.rb +2 -2
- data/lib/spec/runner/heckle_runner.rb +58 -56
- data/lib/spec/runner/option_parser.rb +8 -4
- data/lib/spec/runner/options.rb +29 -14
- data/lib/spec/runner/reporter.rb +1 -1
- data/lib/spec/runner/spec_parser.rb +11 -9
- data/lib/spec/story/runner.rb +40 -42
- data/lib/spec/story/runner/story_runner.rb +10 -6
- data/lib/spec/story/world.rb +66 -70
- data/lib/spec/version.rb +4 -2
- data/{rake_tasks → resources/rake}/examples.rake +0 -0
- data/{rake_tasks → resources/rake}/examples_with_rcov.rake +0 -0
- data/{rake_tasks → resources/rake}/failing_examples_with_html.rake +0 -0
- data/{rake_tasks → resources/rake}/verify_rcov.rake +0 -0
- data/{stories/resources → resources}/spec/example_group_with_should_methods.rb +1 -1
- data/{stories/resources → resources}/spec/simple_spec.rb +1 -1
- data/resources/spec/spec_with_flexmock.rb +19 -0
- data/{stories/resources → resources}/test/spec_and_test_together.rb +1 -1
- data/resources/test/spec_including_test_but_not_unit.rb +11 -0
- data/{stories/resources → resources}/test/test_case_with_should_methods.rb +2 -2
- data/rspec.gemspec +16 -6
- data/spec/autotest/autotest_helper.rb +2 -2
- data/spec/autotest/discover_spec.rb +4 -15
- data/spec/autotest/failed_results_re_spec.rb +24 -0
- data/spec/autotest/rspec_spec.rb +2 -38
- data/spec/spec/dsl/main_spec.rb +88 -0
- data/spec/spec/example/example_group_class_definition_spec.rb +6 -2
- data/spec/spec/example/example_group_factory_spec.rb +50 -10
- data/spec/spec/example/example_group_methods_spec.rb +210 -160
- data/spec/spec/example/example_group_spec.rb +44 -52
- data/spec/spec/example/example_matcher_spec.rb +6 -23
- data/spec/spec/example/example_methods_spec.rb +176 -54
- data/spec/spec/example/helper_method_spec.rb +24 -0
- data/spec/spec/example/pending_module_spec.rb +2 -8
- data/spec/spec/example/shared_example_group_spec.rb +56 -80
- data/spec/spec/expectations/extensions/object_spec.rb +0 -50
- data/spec/spec/expectations/wrap_expectation_spec.rb +30 -0
- data/spec/spec/interop/test/unit/spec_spec.rb +1 -5
- data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +4 -0
- data/spec/spec/matchers/be_close_spec.rb +12 -10
- data/spec/spec/matchers/be_spec.rb +62 -7
- data/spec/spec/matchers/description_generation_spec.rb +19 -0
- data/spec/spec/matchers/eql_spec.rb +7 -6
- data/spec/spec/matchers/equal_spec.rb +7 -6
- data/spec/spec/matchers/handler_spec.rb +4 -43
- data/spec/spec/matchers/has_spec.rb +1 -1
- data/spec/spec/matchers/have_spec.rb +23 -18
- data/spec/spec/matchers/include_spec.rb +24 -0
- data/spec/spec/matchers/match_array_spec.rb +83 -0
- data/spec/spec/matchers/matcher_methods_spec.rb +1 -13
- data/spec/spec/matchers/raise_error_spec.rb +18 -0
- data/spec/spec/matchers/respond_to_spec.rb +71 -9
- data/spec/spec/matchers/throw_symbol_spec.rb +85 -43
- data/spec/spec/mocks/bug_report_11545_spec.rb +4 -5
- data/spec/spec/mocks/bug_report_496.rb +11 -9
- data/spec/spec/mocks/bug_report_600_spec.rb +22 -0
- data/spec/spec/mocks/hash_including_matcher_spec.rb +39 -2
- data/spec/spec/mocks/hash_not_including_matcher_spec.rb +67 -0
- data/spec/spec/mocks/mock_spec.rb +5 -6
- data/spec/spec/mocks/nil_expectation_warning_spec.rb +2 -2
- data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +18 -3
- data/spec/spec/mocks/stub_spec.rb +6 -0
- data/spec/spec/mocks/stubbed_message_expectations_spec.rb +14 -0
- data/spec/spec/runner/command_line_spec.rb +4 -4
- data/spec/spec/runner/configuration_spec.rb +301 -0
- data/spec/spec/runner/drb_command_line_spec.rb +4 -4
- data/spec/spec/runner/example_group_runner_spec.rb +33 -0
- data/spec/spec/runner/formatter/base_formatter_spec.rb +13 -102
- data/spec/spec/runner/formatter/base_text_formatter_spec.rb +23 -0
- data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +5 -5
- data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +3 -3
- data/spec/spec/runner/formatter/html_formatted-1.8.4.html +6 -6
- data/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +9 -9
- data/spec/spec/runner/formatter/html_formatted-1.8.5.html +6 -6
- data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +10 -10
- data/spec/spec/runner/formatter/html_formatted-1.8.6.html +39 -30
- data/spec/spec/runner/formatter/html_formatted-1.8.7.html +379 -0
- data/spec/spec/runner/formatter/html_formatted-1.9.1.html +379 -0
- data/spec/spec/runner/formatter/html_formatter_spec.rb +14 -13
- data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +5 -5
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +7 -17
- data/spec/spec/runner/formatter/spec_mate_formatter_spec.rb +18 -17
- data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +5 -5
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.4.html +6 -6
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +33 -30
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +373 -0
- data/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +373 -0
- data/spec/spec/runner/heckler_spec.rb +16 -9
- data/spec/spec/runner/option_parser_spec.rb +3 -18
- data/spec/spec/runner/options_spec.rb +27 -8
- data/spec/spec/runner/reporter_spec.rb +5 -5
- data/spec/spec/runner/resources/custom_example_group_runner.rb +14 -0
- data/spec/spec/runner/resources/utf8_encoded.rb +7 -0
- data/spec/spec/runner/spec_parser_spec.rb +85 -79
- data/spec/spec/spec_spec.rb +21 -0
- data/spec/spec_helper.rb +9 -1
- data/story_server/prototype/javascripts/prototype.js +1 -1
- metadata +119 -131
- data/examples/stories/adder.rb +0 -13
- data/examples/stories/addition +0 -34
- data/examples/stories/addition.rb +0 -9
- data/examples/stories/calculator.rb +0 -65
- data/examples/stories/game-of-life/.loadpath +0 -5
- data/examples/stories/game-of-life/README.txt +0 -21
- data/examples/stories/game-of-life/behaviour/everything.rb +0 -6
- data/examples/stories/game-of-life/behaviour/examples/examples.rb +0 -3
- data/examples/stories/game-of-life/behaviour/examples/game_behaviour.rb +0 -35
- data/examples/stories/game-of-life/behaviour/examples/grid_behaviour.rb +0 -66
- data/examples/stories/game-of-life/behaviour/stories/CellsWithLessThanTwoNeighboursDie.story +0 -21
- data/examples/stories/game-of-life/behaviour/stories/CellsWithMoreThanThreeNeighboursDie.story +0 -21
- data/examples/stories/game-of-life/behaviour/stories/EmptySpacesWithThreeNeighboursCreateACell.story +0 -42
- data/examples/stories/game-of-life/behaviour/stories/ICanCreateACell.story +0 -42
- data/examples/stories/game-of-life/behaviour/stories/ICanKillACell.story +0 -17
- data/examples/stories/game-of-life/behaviour/stories/TheGridWraps.story +0 -53
- data/examples/stories/game-of-life/behaviour/stories/create_a_cell.rb +0 -52
- data/examples/stories/game-of-life/behaviour/stories/helper.rb +0 -6
- data/examples/stories/game-of-life/behaviour/stories/kill_a_cell.rb +0 -26
- data/examples/stories/game-of-life/behaviour/stories/steps.rb +0 -5
- data/examples/stories/game-of-life/behaviour/stories/stories.rb +0 -3
- data/examples/stories/game-of-life/behaviour/stories/stories.txt +0 -22
- data/examples/stories/game-of-life/life.rb +0 -3
- data/examples/stories/game-of-life/life/game.rb +0 -23
- data/examples/stories/game-of-life/life/grid.rb +0 -43
- data/examples/stories/helper.rb +0 -9
- data/examples/stories/steps/addition_steps.rb +0 -18
- data/lib/spec/adapters.rb +0 -1
- data/lib/spec/adapters/ruby_engine.rb +0 -26
- data/lib/spec/adapters/ruby_engine/mri.rb +0 -8
- data/lib/spec/adapters/ruby_engine/rubinius.rb +0 -8
- data/lib/spec/extensions.rb +0 -4
- data/lib/spec/extensions/class.rb +0 -24
- data/lib/spec/extensions/metaclass.rb +0 -7
- data/lib/spec/extensions/object.rb +0 -6
- data/spec/spec/adapters/ruby_engine_spec.rb +0 -16
- data/spec/spec/example/configuration_spec.rb +0 -296
- data/spec/spec/example/example_runner_spec.rb +0 -194
- data/spec/spec/extensions/main_spec.rb +0 -71
- data/stories/all.rb +0 -5
- data/stories/configuration/before_blocks.story +0 -21
- data/stories/configuration/stories.rb +0 -7
- data/stories/example_groups/stories.rb +0 -7
- data/stories/helper.rb +0 -6
- data/stories/interop/stories.rb +0 -7
- data/stories/mock_framework_integration/stories.rb +0 -7
- data/stories/pending_stories/README +0 -3
- data/stories/resources/spec/before_blocks_example.rb +0 -32
- data/stories/resources/spec/spec_with_flexmock.rb +0 -18
- data/stories/resources/steps/running_rspec.rb +0 -50
- data/stories/resources/stories/failing_story.rb +0 -15
- data/stories/stories/multiline_steps.story +0 -23
- data/stories/stories/steps/multiline_steps.rb +0 -13
- data/stories/stories/stories.rb +0 -6
@@ -0,0 +1,24 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
+
|
3
|
+
# This was added to prove that http://rspec.lighthouseapp.com/projects/5645/tickets/211
|
4
|
+
# was fixed in ruby 1.9.1
|
5
|
+
|
6
|
+
module HelperMethodExample
|
7
|
+
describe "a helper method" do
|
8
|
+
def helper_method
|
9
|
+
"received call"
|
10
|
+
end
|
11
|
+
|
12
|
+
it "is available to examples in the same group" do
|
13
|
+
helper_method.should == "received call"
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "from a nested group" do
|
17
|
+
it "is available to examples in a nested group" do
|
18
|
+
helper_method.should == "received call"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
@@ -4,14 +4,12 @@ module Spec
|
|
4
4
|
|
5
5
|
it 'should raise an ExamplePendingError if no block is supplied' do
|
6
6
|
lambda {
|
7
|
-
include Pending
|
8
7
|
pending "TODO"
|
9
8
|
}.should raise_error(ExamplePendingError, /TODO/)
|
10
9
|
end
|
11
10
|
|
12
11
|
it 'should raise an ExamplePendingError if a supplied block fails as expected' do
|
13
12
|
lambda {
|
14
|
-
include Pending
|
15
13
|
pending "TODO" do
|
16
14
|
raise "oops"
|
17
15
|
end
|
@@ -20,7 +18,6 @@ module Spec
|
|
20
18
|
|
21
19
|
it 'should raise an ExamplePendingError if a supplied block fails as expected with a mock' do
|
22
20
|
lambda {
|
23
|
-
include Pending
|
24
21
|
pending "TODO" do
|
25
22
|
m = mock('thing')
|
26
23
|
m.should_receive(:foo)
|
@@ -31,7 +28,6 @@ module Spec
|
|
31
28
|
|
32
29
|
it 'should raise a PendingExampleFixedError if a supplied block starts working' do
|
33
30
|
lambda {
|
34
|
-
include Pending
|
35
31
|
pending "TODO" do
|
36
32
|
# success!
|
37
33
|
end
|
@@ -40,9 +36,8 @@ module Spec
|
|
40
36
|
|
41
37
|
it "should have the correct file and line number for pending given with a block which fails" do
|
42
38
|
file = __FILE__
|
43
|
-
line_number = __LINE__ +
|
39
|
+
line_number = __LINE__ + 2
|
44
40
|
begin
|
45
|
-
include Pending
|
46
41
|
pending do
|
47
42
|
raise
|
48
43
|
end
|
@@ -53,9 +48,8 @@ module Spec
|
|
53
48
|
|
54
49
|
it "should have the correct file and line number for pending given with no block" do
|
55
50
|
file = __FILE__
|
56
|
-
line_number = __LINE__ +
|
51
|
+
line_number = __LINE__ + 2
|
57
52
|
begin
|
58
|
-
include Pending
|
59
53
|
pending("TODO")
|
60
54
|
rescue => error
|
61
55
|
error.pending_caller.should == "#{file}:#{line_number}"
|
@@ -17,46 +17,25 @@ module Spec
|
|
17
17
|
after(:each) do
|
18
18
|
@formatter.rspec_verify
|
19
19
|
@example_group = nil
|
20
|
-
Spec::Example::SharedExampleGroup.
|
21
|
-
end
|
22
|
-
|
23
|
-
def make_shared_example_group(name, opts=nil, &block)
|
24
|
-
example_group = SharedExampleGroup.new(name, :shared => true, &block)
|
25
|
-
SharedExampleGroup.add_shared_example_group(example_group)
|
26
|
-
example_group
|
27
|
-
end
|
28
|
-
|
29
|
-
def non_shared_example_group()
|
30
|
-
@non_shared_example_group ||= Class.new(ExampleGroup).describe("example_group")
|
31
|
-
end
|
32
|
-
|
33
|
-
it "should accept an optional options hash" do
|
34
|
-
lambda { Class.new(ExampleGroup).describe("context") }.should_not raise_error(Exception)
|
35
|
-
lambda { Class.new(ExampleGroup).describe("context", :shared => true) }.should_not raise_error(Exception)
|
36
|
-
end
|
37
|
-
|
38
|
-
it "should return all shared example_groups" do
|
39
|
-
b1 = make_shared_example_group("b1", :shared => true) {}
|
40
|
-
b2 = make_shared_example_group("b2", :shared => true) {}
|
41
|
-
|
42
|
-
b1.should_not be(nil)
|
43
|
-
b2.should_not be(nil)
|
44
|
-
|
45
|
-
SharedExampleGroup.find_shared_example_group("b1").should equal(b1)
|
46
|
-
SharedExampleGroup.find_shared_example_group("b2").should equal(b2)
|
47
|
-
end
|
48
|
-
|
49
|
-
it "should register as shared example_group" do
|
50
|
-
example_group = make_shared_example_group("example_group") {}
|
51
|
-
SharedExampleGroup.shared_example_groups.should include(example_group)
|
20
|
+
Spec::Example::SharedExampleGroup.clear
|
52
21
|
end
|
22
|
+
|
23
|
+
describe "#register" do
|
24
|
+
it "creates a new shared example group with the submitted args" do
|
25
|
+
block = lambda {}
|
26
|
+
group = SharedExampleGroup.new("shared group") do end
|
27
|
+
Spec::Example::SharedExampleGroup.should_receive(:new).with("share me", &block).and_return(group)
|
28
|
+
Spec::Example::SharedExampleGroup.register("share me", &block)
|
29
|
+
end
|
53
30
|
|
54
|
-
|
55
|
-
|
56
|
-
|
31
|
+
it "registers the shared example group" do
|
32
|
+
lambda do
|
33
|
+
Spec::Example::SharedExampleGroup.register "share me" do end
|
34
|
+
end.should change {Spec::Example::SharedExampleGroup.count}.by(1)
|
35
|
+
end
|
57
36
|
end
|
58
37
|
|
59
|
-
it "
|
38
|
+
it "complains when adding a second shared example_group with the same description" do
|
60
39
|
describe "shared example_group", :shared => true do
|
61
40
|
end
|
62
41
|
lambda do
|
@@ -64,14 +43,17 @@ module Spec
|
|
64
43
|
end
|
65
44
|
end.should raise_error(ArgumentError)
|
66
45
|
end
|
67
|
-
|
68
|
-
it "
|
69
|
-
|
70
|
-
|
71
|
-
|
46
|
+
|
47
|
+
it "does NOT add the same group twice" do
|
48
|
+
lambda do
|
49
|
+
2.times do
|
50
|
+
describe "shared example_group which gets loaded twice", :shared => true do
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end.should change {Spec::Example::SharedExampleGroup.count}.by(1)
|
72
54
|
end
|
73
55
|
|
74
|
-
it "
|
56
|
+
it "does NOT complain when adding the same shared example_group again (i.e. file gets reloaded)" do
|
75
57
|
lambda do
|
76
58
|
2.times do
|
77
59
|
describe "shared example_group which gets loaded twice", :shared => true do
|
@@ -80,42 +62,36 @@ module Spec
|
|
80
62
|
end.should_not raise_error(ArgumentError)
|
81
63
|
end
|
82
64
|
|
83
|
-
it "
|
84
|
-
|
65
|
+
it "does NOT complain when adding the same shared example_group in same file with different absolute path" do
|
66
|
+
SharedExampleGroup.register(
|
85
67
|
"shared example_group",
|
86
68
|
:shared => true,
|
87
69
|
:spec_path => "/my/spec/a/../shared.rb"
|
88
70
|
)
|
89
|
-
|
71
|
+
SharedExampleGroup.register(
|
90
72
|
"shared example_group",
|
91
73
|
:shared => true,
|
92
74
|
:spec_path => "/my/spec/b/../shared.rb"
|
93
75
|
)
|
94
|
-
|
95
|
-
SharedExampleGroup.add_shared_example_group(shared_example_group_1)
|
96
|
-
SharedExampleGroup.add_shared_example_group(shared_example_group_2)
|
97
76
|
end
|
98
77
|
|
99
|
-
it "
|
100
|
-
|
78
|
+
it "complains when adding a different shared example_group with the same name in a different file with the same basename" do
|
79
|
+
SharedExampleGroup.register(
|
101
80
|
"shared example_group",
|
102
81
|
:shared => true,
|
103
82
|
:spec_path => "/my/spec/a/shared.rb"
|
104
83
|
)
|
105
|
-
shared_example_group_2 = Class.new(ExampleGroup).describe(
|
106
|
-
"shared example_group",
|
107
|
-
:shared => true,
|
108
|
-
:spec_path => "/my/spec/b/shared.rb"
|
109
|
-
)
|
110
|
-
|
111
|
-
SharedExampleGroup.add_shared_example_group(shared_example_group_1)
|
112
84
|
lambda do
|
113
|
-
SharedExampleGroup.
|
85
|
+
SharedExampleGroup.register(
|
86
|
+
"shared example_group",
|
87
|
+
:shared => true,
|
88
|
+
:spec_path => "/my/spec/b/shared.rb"
|
89
|
+
)
|
114
90
|
end.should raise_error(ArgumentError, /already exists/)
|
115
91
|
end
|
116
92
|
|
117
|
-
it "
|
118
|
-
shared_example_group =
|
93
|
+
it "adds examples to current example_group using it_should_behave_like" do
|
94
|
+
shared_example_group = SharedExampleGroup.register("shared example_group") do
|
119
95
|
it("shared example") {}
|
120
96
|
it("shared example 2") {}
|
121
97
|
end
|
@@ -126,12 +102,12 @@ module Spec
|
|
126
102
|
example_group.number_of_examples.should == 3
|
127
103
|
end
|
128
104
|
|
129
|
-
it "
|
130
|
-
shared_example_group_1 =
|
105
|
+
it "adds examples to from two shared groups" do
|
106
|
+
shared_example_group_1 = SharedExampleGroup.register("shared example_group 1") do
|
131
107
|
it("shared example 1") {}
|
132
108
|
end
|
133
109
|
|
134
|
-
shared_example_group_1 =
|
110
|
+
shared_example_group_1 = SharedExampleGroup.register("shared example_group 2") do
|
135
111
|
it("shared example 2") {}
|
136
112
|
end
|
137
113
|
|
@@ -141,7 +117,7 @@ module Spec
|
|
141
117
|
example_group.number_of_examples.should == 3
|
142
118
|
end
|
143
119
|
|
144
|
-
it "
|
120
|
+
it "adds examples to current example_group using include" do
|
145
121
|
shared_example_group = describe "all things", :shared => true do
|
146
122
|
it "should do stuff" do end
|
147
123
|
end
|
@@ -153,7 +129,7 @@ module Spec
|
|
153
129
|
example_group.number_of_examples.should == 1
|
154
130
|
end
|
155
131
|
|
156
|
-
it "
|
132
|
+
it "adds examples to current example_group using it_should_behave_like with a module" do
|
157
133
|
AllThings = describe "all things", :shared => true do
|
158
134
|
it "should do stuff" do end
|
159
135
|
end
|
@@ -165,9 +141,9 @@ module Spec
|
|
165
141
|
example_group.number_of_examples.should == 1
|
166
142
|
end
|
167
143
|
|
168
|
-
it "
|
144
|
+
it "runs shared examples" do
|
169
145
|
shared_example_ran = false
|
170
|
-
shared_example_group =
|
146
|
+
shared_example_group = SharedExampleGroup.register("shared example_group") do
|
171
147
|
it("shared example") { shared_example_ran = true }
|
172
148
|
end
|
173
149
|
|
@@ -175,17 +151,17 @@ module Spec
|
|
175
151
|
|
176
152
|
example_group.it_should_behave_like("shared example_group")
|
177
153
|
example_group.it("example") {example_ran = true}
|
178
|
-
example_group.run
|
154
|
+
example_group.run(options)
|
179
155
|
example_ran.should be_true
|
180
156
|
shared_example_ran.should be_true
|
181
157
|
end
|
182
158
|
|
183
|
-
it "
|
159
|
+
it "runs before(:each) and after(:each) from shared example_group" do
|
184
160
|
shared_setup_ran = false
|
185
161
|
shared_teardown_ran = false
|
186
|
-
shared_example_group =
|
187
|
-
before { shared_setup_ran = true }
|
188
|
-
after
|
162
|
+
shared_example_group = SharedExampleGroup.register("shared example_group") do
|
163
|
+
before(:each) { shared_setup_ran = true }
|
164
|
+
after(:each) { shared_teardown_ran = true }
|
189
165
|
it("shared example") { shared_example_ran = true }
|
190
166
|
end
|
191
167
|
|
@@ -193,7 +169,7 @@ module Spec
|
|
193
169
|
|
194
170
|
example_group.it_should_behave_like("shared example_group")
|
195
171
|
example_group.it("example") {example_ran = true}
|
196
|
-
example_group.run
|
172
|
+
example_group.run(options)
|
197
173
|
example_ran.should be_true
|
198
174
|
shared_setup_ran.should be_true
|
199
175
|
shared_teardown_ran.should be_true
|
@@ -202,9 +178,9 @@ module Spec
|
|
202
178
|
it "should run before(:all) and after(:all) only once from shared example_group" do
|
203
179
|
shared_before_all_run_count = 0
|
204
180
|
shared_after_all_run_count = 0
|
205
|
-
shared_example_group =
|
181
|
+
shared_example_group = SharedExampleGroup.register("shared example_group") do
|
206
182
|
before(:all) { shared_before_all_run_count += 1}
|
207
|
-
after(:all)
|
183
|
+
after(:all) { shared_after_all_run_count += 1}
|
208
184
|
it("shared example") { shared_example_ran = true }
|
209
185
|
end
|
210
186
|
|
@@ -212,7 +188,7 @@ module Spec
|
|
212
188
|
|
213
189
|
example_group.it_should_behave_like("shared example_group")
|
214
190
|
example_group.it("example") {example_ran = true}
|
215
|
-
example_group.run
|
191
|
+
example_group.run(options)
|
216
192
|
example_ran.should be_true
|
217
193
|
shared_before_all_run_count.should == 1
|
218
194
|
shared_after_all_run_count.should == 1
|
@@ -221,7 +197,7 @@ module Spec
|
|
221
197
|
it "should include modules, included into shared example_group, into current example_group" do
|
222
198
|
@formatter.should_receive(:add_example_group).with(any_args)
|
223
199
|
|
224
|
-
shared_example_group =
|
200
|
+
shared_example_group = SharedExampleGroup.register("shared example_group") do
|
225
201
|
it("shared example") { shared_example_ran = true }
|
226
202
|
end
|
227
203
|
|
@@ -248,13 +224,13 @@ module Spec
|
|
248
224
|
mod1_method
|
249
225
|
mod2_method
|
250
226
|
end
|
251
|
-
example_group.run
|
227
|
+
example_group.run(options)
|
252
228
|
mod1_method_called.should be_true
|
253
229
|
mod2_method_called.should be_true
|
254
230
|
end
|
255
231
|
|
256
232
|
it "should make methods defined in the shared example_group available in consuming example_group" do
|
257
|
-
shared_example_group =
|
233
|
+
shared_example_group = SharedExampleGroup.register("shared example_group xyz") do
|
258
234
|
def a_shared_helper_method
|
259
235
|
"this got defined in a shared example_group"
|
260
236
|
end
|
@@ -265,7 +241,7 @@ module Spec
|
|
265
241
|
a_shared_helper_method
|
266
242
|
success = true
|
267
243
|
end
|
268
|
-
example_group.run
|
244
|
+
example_group.run(options)
|
269
245
|
success.should be_true
|
270
246
|
end
|
271
247
|
|
@@ -20,31 +20,6 @@ describe Object, "#should" do
|
|
20
20
|
@target.should @matcher
|
21
21
|
}.should fail_with("the failure message")
|
22
22
|
end
|
23
|
-
|
24
|
-
it "should raise error if it receives false directly" do
|
25
|
-
lambda {
|
26
|
-
@target.should false
|
27
|
-
}.should raise_error(Spec::Expectations::InvalidMatcherError)
|
28
|
-
end
|
29
|
-
|
30
|
-
it "should raise error if it receives false (evaluated)" do
|
31
|
-
lambda {
|
32
|
-
@target.should eql?("foo")
|
33
|
-
}.should raise_error(Spec::Expectations::InvalidMatcherError)
|
34
|
-
end
|
35
|
-
|
36
|
-
it "should raise error if it receives true" do
|
37
|
-
lambda {
|
38
|
-
@target.should true
|
39
|
-
}.should raise_error(Spec::Expectations::InvalidMatcherError)
|
40
|
-
end
|
41
|
-
|
42
|
-
it "should raise error if it receives no argument and it is not used as a left side of an operator" do
|
43
|
-
pending "Is it even possible to catch this?"
|
44
|
-
lambda {
|
45
|
-
@target.should
|
46
|
-
}.should raise_error(Spec::Expectations::InvalidMatcherError)
|
47
|
-
end
|
48
23
|
end
|
49
24
|
|
50
25
|
describe Object, "#should_not" do
|
@@ -67,29 +42,4 @@ describe Object, "#should_not" do
|
|
67
42
|
@target.should_not @matcher
|
68
43
|
}.should fail_with("the negative failure message")
|
69
44
|
end
|
70
|
-
|
71
|
-
it "should raise error if it receives false directly" do
|
72
|
-
lambda {
|
73
|
-
@target.should_not false
|
74
|
-
}.should raise_error(Spec::Expectations::InvalidMatcherError)
|
75
|
-
end
|
76
|
-
|
77
|
-
it "should raise error if it receives false (evaluated)" do
|
78
|
-
lambda {
|
79
|
-
@target.should_not eql?("foo")
|
80
|
-
}.should raise_error(Spec::Expectations::InvalidMatcherError)
|
81
|
-
end
|
82
|
-
|
83
|
-
it "should raise error if it receives true" do
|
84
|
-
lambda {
|
85
|
-
@target.should_not true
|
86
|
-
}.should raise_error(Spec::Expectations::InvalidMatcherError)
|
87
|
-
end
|
88
|
-
|
89
|
-
it "should raise error if it receives no argument and it is not used as a left side of an operator" do
|
90
|
-
pending "Is it even possible to catch this?"
|
91
|
-
lambda {
|
92
|
-
@target.should_not
|
93
|
-
}.should raise_error(Spec::Expectations::InvalidMatcherError)
|
94
|
-
end
|
95
45
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
+
|
3
|
+
module Spec
|
4
|
+
module Matchers
|
5
|
+
describe "wrap_expectation" do
|
6
|
+
|
7
|
+
def stub_matcher
|
8
|
+
@_stub_matcher ||= simple_matcher do
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def failing_matcher
|
13
|
+
@_failing_matcher ||= simple_matcher do
|
14
|
+
1.should == 2
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should return true if there is no error" do
|
19
|
+
wrap_expectation stub_matcher do
|
20
|
+
end.should be_true
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should return false if there is an error" do
|
24
|
+
wrap_expectation failing_matcher do
|
25
|
+
raise "error"
|
26
|
+
end.should be_false
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -2,11 +2,7 @@ require File.dirname(__FILE__) + '/test_unit_spec_helper'
|
|
2
2
|
|
3
3
|
describe "ExampleGroup with test/unit/interop" do
|
4
4
|
include TestUnitSpecHelper
|
5
|
-
|
6
|
-
def resources
|
7
|
-
File.dirname(__FILE__) + "/resources"
|
8
|
-
end
|
9
|
-
|
5
|
+
|
10
6
|
describe "with passing examples" do
|
11
7
|
it "should output 0 failures" do
|
12
8
|
output = ruby("#{resources}/spec_that_passes.rb")
|