rspec 1.0.8 → 1.1.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/CHANGES +122 -2
- data/README +10 -9
- data/Rakefile +22 -49
- data/TODO +2 -0
- data/bin/spec +1 -1
- data/bin/spec_translator +8 -8
- data/examples/{auto_spec_description_example.rb → pure/autogenerated_docstrings_example.rb} +0 -0
- data/examples/{before_and_after_example.rb → pure/before_and_after_example.rb} +1 -0
- data/examples/{behave_as_example.rb → pure/behave_as_example.rb} +0 -0
- data/examples/{custom_expectation_matchers.rb → pure/custom_expectation_matchers.rb} +0 -0
- data/examples/{custom_formatter.rb → pure/custom_formatter.rb} +1 -0
- data/examples/{dynamic_spec.rb → pure/dynamic_spec.rb} +0 -0
- data/examples/{file_accessor.rb → pure/file_accessor.rb} +1 -0
- data/examples/{file_accessor_spec.rb → pure/file_accessor_spec.rb} +0 -0
- data/examples/{greeter_spec.rb → pure/greeter_spec.rb} +1 -0
- data/examples/{helper_method_example.rb → pure/helper_method_example.rb} +0 -0
- data/examples/{io_processor.rb → pure/io_processor.rb} +0 -0
- data/examples/{io_processor_spec.rb → pure/io_processor_spec.rb} +0 -0
- data/examples/{legacy_spec.rb → pure/legacy_spec.rb} +1 -0
- data/examples/{mocking_example.rb → pure/mocking_example.rb} +0 -0
- data/examples/pure/multi_threaded_behaviour_runner.rb +28 -0
- data/examples/pure/nested_classes_example.rb +36 -0
- data/examples/{partial_mock_example.rb → pure/partial_mock_example.rb} +0 -0
- data/examples/{pending_example.rb → pure/pending_example.rb} +0 -0
- data/examples/{predicate_example.rb → pure/predicate_example.rb} +0 -0
- data/examples/{priority.txt → pure/priority.txt} +0 -0
- data/examples/pure/shared_example_group_example.rb +66 -0
- data/examples/pure/shared_stack_examples.rb +38 -0
- data/examples/pure/spec_helper.rb +3 -0
- data/examples/{stack.rb → pure/stack.rb} +0 -0
- data/examples/{stack_spec.rb → pure/stack_spec.rb} +1 -35
- data/examples/pure/stack_spec_with_nested_example_groups.rb +67 -0
- data/examples/{stubbing_example.rb → pure/stubbing_example.rb} +0 -0
- data/examples/stories/adder.rb +13 -0
- data/examples/stories/addition +34 -0
- data/examples/stories/addition.rb +9 -0
- data/examples/stories/calculator.rb +65 -0
- data/examples/stories/game-of-life/README.txt +21 -0
- data/examples/stories/game-of-life/behaviour/everything.rb +6 -0
- data/examples/stories/game-of-life/behaviour/examples/examples.rb +3 -0
- data/examples/stories/game-of-life/behaviour/examples/game_behaviour.rb +35 -0
- data/examples/stories/game-of-life/behaviour/examples/grid_behaviour.rb +66 -0
- data/examples/stories/game-of-life/behaviour/stories/CellsWithLessThanTwoNeighboursDie.story +21 -0
- data/examples/stories/game-of-life/behaviour/stories/CellsWithMoreThanThreeNeighboursDie.story +21 -0
- data/examples/stories/game-of-life/behaviour/stories/EmptySpacesWithThreeNeighboursCreateACell.story +42 -0
- data/examples/stories/game-of-life/behaviour/stories/ICanCreateACell.story +42 -0
- data/examples/stories/game-of-life/behaviour/stories/ICanKillACell.story +17 -0
- data/examples/stories/game-of-life/behaviour/stories/TheGridWraps.story +53 -0
- data/examples/stories/game-of-life/behaviour/stories/create_a_cell.rb +52 -0
- data/examples/stories/game-of-life/behaviour/stories/helper.rb +6 -0
- data/examples/stories/game-of-life/behaviour/stories/kill_a_cell.rb +26 -0
- data/examples/stories/game-of-life/behaviour/stories/steps.rb +5 -0
- data/examples/stories/game-of-life/behaviour/stories/stories.rb +3 -0
- data/examples/stories/game-of-life/behaviour/stories/stories.txt +22 -0
- data/examples/stories/game-of-life/life.rb +3 -0
- data/examples/stories/game-of-life/life/game.rb +23 -0
- data/examples/stories/game-of-life/life/grid.rb +43 -0
- data/examples/stories/helper.rb +9 -0
- data/examples/stories/steps/addition_steps.rb +18 -0
- data/lib/autotest/rspec.rb +1 -2
- data/lib/spec.rb +30 -6
- data/lib/spec/example.rb +12 -0
- data/lib/spec/{dsl → example}/configuration.rb +48 -39
- data/lib/spec/{dsl → example}/errors.rb +2 -2
- data/lib/spec/example/example_group.rb +16 -0
- data/lib/spec/example/example_group_factory.rb +62 -0
- data/lib/spec/example/example_group_methods.rb +412 -0
- data/lib/spec/example/example_matcher.rb +42 -0
- data/lib/spec/example/example_methods.rb +101 -0
- data/lib/spec/example/module_reopening_fix.rb +21 -0
- data/lib/spec/example/pending.rb +18 -0
- data/lib/spec/example/shared_example_group.rb +58 -0
- data/lib/spec/expectations/differs/default.rb +15 -10
- data/lib/spec/expectations/errors.rb +7 -1
- data/lib/spec/expectations/extensions/object.rb +12 -7
- data/lib/spec/expectations/handler.rb +13 -4
- data/lib/spec/extensions.rb +2 -0
- data/lib/spec/extensions/class.rb +24 -0
- data/lib/spec/extensions/main.rb +54 -0
- data/lib/spec/extensions/object.rb +5 -1
- data/lib/spec/interop/test.rb +10 -0
- data/lib/spec/interop/test/unit/autorunner.rb +6 -0
- data/lib/spec/interop/test/unit/testcase.rb +61 -0
- data/lib/spec/interop/test/unit/testresult.rb +6 -0
- data/lib/spec/interop/test/unit/testsuite_adapter.rb +34 -0
- data/lib/spec/interop/test/unit/ui/console/testrunner.rb +60 -0
- data/lib/spec/matchers.rb +11 -15
- data/lib/spec/matchers/be.rb +23 -6
- data/lib/spec/matchers/change.rb +25 -1
- data/lib/spec/matchers/exist.rb +17 -0
- data/lib/spec/matchers/operator_matcher.rb +1 -0
- data/lib/spec/matchers/simple_matcher.rb +29 -0
- data/lib/spec/matchers/throw_symbol.rb +2 -0
- data/lib/spec/mocks.rb +5 -2
- data/lib/spec/mocks/argument_expectation.rb +1 -1
- data/lib/spec/mocks/message_expectation.rb +62 -44
- data/lib/spec/mocks/methods.rb +2 -2
- data/lib/spec/mocks/mock.rb +24 -3
- data/lib/spec/mocks/proxy.rb +26 -23
- data/lib/spec/mocks/space.rb +1 -1
- data/lib/spec/mocks/spec_methods.rb +20 -12
- data/lib/spec/rake/spectask.rb +19 -1
- data/lib/spec/rake/verify_rcov.rb +1 -1
- data/lib/spec/runner.rb +33 -10
- data/lib/spec/runner/backtrace_tweaker.rb +3 -3
- data/lib/spec/runner/class_and_arguments_parser.rb +16 -0
- data/lib/spec/runner/command_line.rb +18 -12
- data/lib/spec/runner/drb_command_line.rb +4 -5
- data/lib/spec/runner/example_group_runner.rb +59 -0
- data/lib/spec/runner/formatter/base_formatter.rb +10 -8
- data/lib/spec/runner/formatter/base_text_formatter.rb +18 -18
- data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +31 -0
- data/lib/spec/runner/formatter/failing_examples_formatter.rb +3 -5
- data/lib/spec/runner/formatter/html_formatter.rb +37 -27
- data/lib/spec/runner/formatter/profile_formatter.rb +47 -0
- data/lib/spec/runner/formatter/progress_bar_formatter.rb +3 -4
- data/lib/spec/runner/formatter/specdoc_formatter.rb +27 -13
- data/lib/spec/runner/formatter/story/html_formatter.rb +124 -0
- data/lib/spec/runner/formatter/story/plain_text_formatter.rb +123 -0
- data/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
- data/lib/spec/runner/heckle_runner.rb +9 -9
- data/lib/spec/runner/option_parser.rb +140 -138
- data/lib/spec/runner/options.rb +168 -90
- data/lib/spec/runner/reporter.rb +58 -40
- data/lib/spec/runner/spec_parser.rb +11 -8
- data/lib/spec/story.rb +10 -0
- data/lib/spec/story/extensions.rb +1 -0
- data/lib/spec/story/extensions/main.rb +86 -0
- data/lib/spec/story/given_scenario.rb +14 -0
- data/lib/spec/story/runner.rb +58 -0
- data/lib/spec/story/runner/plain_text_story_runner.rb +48 -0
- data/lib/spec/story/runner/scenario_collector.rb +18 -0
- data/lib/spec/story/runner/scenario_runner.rb +46 -0
- data/lib/spec/story/runner/story_mediator.rb +123 -0
- data/lib/spec/story/runner/story_parser.rb +227 -0
- data/lib/spec/story/runner/story_runner.rb +67 -0
- data/lib/spec/story/scenario.rb +14 -0
- data/lib/spec/story/step.rb +48 -0
- data/lib/spec/story/step_group.rb +89 -0
- data/lib/spec/story/step_mother.rb +37 -0
- data/lib/spec/story/story.rb +42 -0
- data/lib/spec/story/world.rb +124 -0
- data/lib/spec/version.rb +4 -5
- data/plugins/mock_frameworks/rspec.rb +1 -1
- data/spec/autotest/rspec_spec.rb +13 -7
- data/spec/autotest_helper.rb +4 -3
- data/spec/rspec_suite.rb +7 -0
- data/spec/ruby_forker.rb +13 -0
- data/spec/spec/example/configuration_spec.rb +290 -0
- data/spec/spec/example/example_group_class_definition_spec.rb +48 -0
- data/spec/spec/example/example_group_factory_spec.rb +129 -0
- data/spec/spec/example/example_group_methods_spec.rb +465 -0
- data/spec/spec/example/example_group_spec.rb +711 -0
- data/spec/spec/{dsl → example}/example_matcher_spec.rb +23 -18
- data/spec/spec/example/example_methods_spec.rb +75 -0
- data/spec/spec/example/example_runner_spec.rb +194 -0
- data/spec/spec/example/example_spec.rb +53 -0
- data/spec/spec/example/nested_example_group_spec.rb +59 -0
- data/spec/spec/example/pending_module_spec.rb +31 -0
- data/spec/spec/{dsl → example}/predicate_matcher_spec.rb +1 -1
- data/spec/spec/example/shared_example_group_spec.rb +265 -0
- data/spec/spec/example/subclassing_example_group_spec.rb +25 -0
- data/spec/spec/expectations/differs/default_spec.rb +5 -3
- data/spec/spec/expectations/extensions/object_spec.rb +63 -2
- data/spec/spec/extensions/main_spec.rb +50 -0
- data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +14 -0
- data/spec/spec/interop/test/unit/testcase_spec.rb +10 -0
- data/spec/spec/interop/test/unit/testcase_spec_with_test_unit.rb +20 -0
- data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
- data/spec/spec/interop/test/unit/testsuite_adapter_spec_with_test_unit.rb +34 -0
- data/spec/spec/matchers/be_spec.rb +15 -0
- data/spec/spec/matchers/change_spec.rb +87 -0
- data/spec/spec/matchers/description_generation_spec.rb +31 -37
- data/spec/spec/matchers/exist_spec.rb +31 -22
- data/spec/spec/matchers/handler_spec.rb +42 -1
- data/spec/spec/matchers/have_spec.rb +1 -1
- data/spec/spec/matchers/mock_constraint_matchers_spec.rb +1 -1
- data/spec/spec/matchers/operator_matcher_spec.rb +1 -1
- data/spec/spec/matchers/simple_matcher_spec.rb +31 -0
- data/spec/spec/matchers/throw_symbol_spec.rb +4 -1
- data/spec/spec/mocks/bug_report_10263.rb +24 -0
- data/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
- data/spec/spec/mocks/bug_report_8165_spec.rb +2 -2
- data/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +1 -0
- data/spec/spec/mocks/mock_spec.rb +200 -102
- data/spec/spec/mocks/multiple_return_value_spec.rb +1 -1
- data/spec/spec/mocks/options_hash_spec.rb +19 -7
- data/spec/spec/mocks/partial_mock_spec.rb +31 -9
- data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +6 -0
- data/spec/spec/mocks/stub_spec.rb +120 -98
- data/spec/spec/package/bin_spec_spec.rb +7 -5
- data/spec/spec/runner/class_and_argument_parser_spec.rb +23 -0
- data/spec/spec/runner/command_line_spec.rb +140 -27
- data/spec/spec/runner/drb_command_line_spec.rb +39 -31
- data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +44 -0
- data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +16 -11
- data/spec/spec/runner/formatter/html_formatter_spec.rb +60 -50
- data/spec/spec/runner/formatter/profile_formatter_spec.rb +65 -0
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +29 -13
- data/spec/spec/runner/formatter/snippet_extractor_spec.rb +14 -7
- data/spec/spec/runner/formatter/spec_mate_formatter_spec.rb +103 -0
- data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +103 -39
- data/spec/spec/runner/formatter/story/html_formatter_spec.rb +56 -0
- data/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +289 -0
- data/spec/spec/runner/heckle_runner_spec.rb +29 -14
- data/spec/spec/runner/heckler_spec.rb +4 -5
- data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +5 -5
- data/spec/spec/runner/option_parser_spec.rb +86 -58
- data/spec/spec/runner/options_spec.rb +239 -120
- data/spec/spec/runner/output_one_time_fixture.rb +7 -0
- data/spec/spec/runner/output_one_time_fixture_runner.rb +8 -0
- data/spec/spec/runner/output_one_time_spec.rb +16 -0
- data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +6 -6
- data/spec/spec/runner/reporter_spec.rb +147 -163
- data/spec/spec/runner/spec_parser_spec.rb +31 -0
- data/spec/spec/runner_spec.rb +11 -0
- data/spec/spec/spec_classes.rb +12 -5
- data/spec/spec/story/builders.rb +46 -0
- data/spec/spec/story/extensions/main_spec.rb +161 -0
- data/spec/spec/story/extensions_spec.rb +14 -0
- data/spec/spec/story/given_scenario_spec.rb +27 -0
- data/spec/spec/story/runner/plain_text_story_runner_spec.rb +92 -0
- data/spec/spec/story/runner/scenario_collector_spec.rb +27 -0
- data/spec/spec/story/runner/scenario_runner_spec.rb +142 -0
- data/spec/spec/story/runner/story_mediator_spec.rb +133 -0
- data/spec/spec/story/runner/story_parser_spec.rb +384 -0
- data/spec/spec/story/runner/story_runner_spec.rb +219 -0
- data/spec/spec/story/runner_spec.rb +106 -0
- data/spec/spec/story/scenario_spec.rb +20 -0
- data/spec/spec/story/step_group_spec.rb +157 -0
- data/spec/spec/story/step_mother_spec.rb +72 -0
- data/spec/spec/story/step_spec.rb +147 -0
- data/spec/spec/story/story_helper.rb +2 -0
- data/spec/spec/story/story_spec.rb +86 -0
- data/spec/spec/story/world_spec.rb +416 -0
- data/spec/spec/translator_spec.rb +2 -1
- data/spec/spec_helper.rb +59 -2
- data/stories/all.rb +5 -0
- data/stories/example_groups/autogenerated_docstrings +26 -0
- data/stories/example_groups/example_group_with_should_methods +17 -0
- data/stories/example_groups/nested_groups +17 -0
- data/stories/example_groups/output +20 -0
- data/stories/example_groups/stories.rb +7 -0
- data/stories/helper.rb +6 -0
- data/stories/interop/examples_and_tests_together +30 -0
- data/stories/interop/stories.rb +7 -0
- data/stories/interop/test_case_with_should_methods +17 -0
- data/stories/pending_stories/README +3 -0
- data/stories/resources/helpers/cmdline.rb +9 -0
- data/stories/resources/helpers/story_helper.rb +16 -0
- data/stories/resources/matchers/smart_match.rb +37 -0
- data/stories/resources/spec/example_group_with_should_methods.rb +12 -0
- data/stories/resources/spec/simple_spec.rb +8 -0
- data/stories/resources/steps/running_rspec.rb +50 -0
- data/stories/resources/test/spec_and_test_together.rb +57 -0
- data/stories/resources/test/test_case_with_should_methods.rb +30 -0
- metadata +232 -106
- data/EXAMPLES.rd +0 -111
- data/examples/multi_threaded_behaviour_runner.rb +0 -25
- data/examples/shared_behaviours_example.rb +0 -39
- data/examples/spec_helper.rb +0 -1
- data/examples/test_case_adapter_example.rb +0 -26
- data/examples/test_case_spec.rb +0 -65
- data/lib/spec/dsl.rb +0 -11
- data/lib/spec/dsl/behaviour.rb +0 -220
- data/lib/spec/dsl/behaviour_callbacks.rb +0 -82
- data/lib/spec/dsl/behaviour_eval.rb +0 -231
- data/lib/spec/dsl/behaviour_factory.rb +0 -42
- data/lib/spec/dsl/composite_proc_builder.rb +0 -33
- data/lib/spec/dsl/description.rb +0 -76
- data/lib/spec/dsl/example.rb +0 -135
- data/lib/spec/dsl/example_matcher.rb +0 -40
- data/lib/spec/dsl/example_should_raise_handler.rb +0 -74
- data/lib/spec/runner/behaviour_runner.rb +0 -123
- data/lib/spec/runner/extensions/kernel.rb +0 -50
- data/lib/spec/runner/extensions/object.rb +0 -32
- data/lib/spec/runner/formatter.rb +0 -9
- data/lib/spec/runner/formatter/failing_behaviours_formatter.rb +0 -29
- data/lib/spec/runner/formatter/rdoc_formatter.rb +0 -24
- data/lib/spec/test_case_adapter.rb +0 -10
- data/spec/spec/dsl/behaviour_eval_spec.rb +0 -79
- data/spec/spec/dsl/behaviour_factory_spec.rb +0 -48
- data/spec/spec/dsl/behaviour_spec.rb +0 -661
- data/spec/spec/dsl/composite_proc_builder_spec.rb +0 -44
- data/spec/spec/dsl/configuration_spec.rb +0 -55
- data/spec/spec/dsl/description_spec.rb +0 -89
- data/spec/spec/dsl/example_class_spec.rb +0 -24
- data/spec/spec/dsl/example_instance_spec.rb +0 -160
- data/spec/spec/dsl/example_should_raise_spec.rb +0 -137
- data/spec/spec/dsl/shared_behaviour_spec.rb +0 -252
- data/spec/spec/runner/behaviour_runner_spec.rb +0 -229
- data/spec/spec/runner/context_matching_spec.rb +0 -27
- data/spec/spec/runner/extensions/bug_report_10577_spec.rb +0 -35
- data/spec/spec/runner/extensions/kernel_spec.rb +0 -36
- data/spec/spec/runner/formatter/failing_behaviours_formatter_spec.rb +0 -40
- data/spec/spec/runner/formatter/progress_bar_formatter_dry_run_spec.rb +0 -20
- data/spec/spec/runner/formatter/progress_bar_formatter_failure_dump_spec.rb +0 -36
- data/spec/spec/runner/formatter/rdoc_formatter_dry_run_spec.rb +0 -19
- data/spec/spec/runner/formatter/rdoc_formatter_spec.rb +0 -46
- data/spec/spec/runner/formatter/specdoc_formatter_dry_run_spec.rb +0 -21
- data/spec/spec/runner/object_ext_spec.rb +0 -11
@@ -1,7 +1,7 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
2
|
|
3
3
|
module Spec
|
4
|
-
module
|
4
|
+
module Example
|
5
5
|
module ExampleMatcherSpecHelper
|
6
6
|
class MatchDescription
|
7
7
|
def initialize(description)
|
@@ -25,32 +25,37 @@ module Spec
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
-
describe ExampleMatcher do
|
28
|
+
describe ExampleMatcher, "#matches?" do
|
29
29
|
include ExampleMatcherSpecHelper
|
30
30
|
|
31
|
-
it "should match correct
|
32
|
-
matcher = ExampleMatcher.new("
|
33
|
-
matcher.should match_description("
|
31
|
+
it "should match correct example_group and example" do
|
32
|
+
matcher = ExampleMatcher.new("example_group", "example")
|
33
|
+
matcher.should match_description("example_group example")
|
34
34
|
end
|
35
35
|
|
36
36
|
it "should not match wrong example" do
|
37
|
-
matcher = ExampleMatcher.new("
|
38
|
-
matcher.should_not match_description("
|
37
|
+
matcher = ExampleMatcher.new("example_group", "other example")
|
38
|
+
matcher.should_not match_description("example_group example")
|
39
39
|
end
|
40
40
|
|
41
|
-
it "should not match wrong
|
42
|
-
matcher = ExampleMatcher.new("other
|
43
|
-
matcher.should_not match_description("
|
41
|
+
it "should not match wrong example_group" do
|
42
|
+
matcher = ExampleMatcher.new("other example_group", "example")
|
43
|
+
matcher.should_not match_description("example_group example")
|
44
44
|
end
|
45
45
|
|
46
46
|
it "should match example only" do
|
47
|
-
matcher = ExampleMatcher.new("
|
47
|
+
matcher = ExampleMatcher.new("example_group", "example")
|
48
48
|
matcher.should match_description("example")
|
49
49
|
end
|
50
|
-
|
51
|
-
it "should match
|
52
|
-
matcher = ExampleMatcher.new("
|
53
|
-
matcher.should match_description("
|
50
|
+
|
51
|
+
it "should match example_group only" do
|
52
|
+
matcher = ExampleMatcher.new("example_group", "example")
|
53
|
+
matcher.should match_description("example_group")
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should match example_group ending with before(:all)" do
|
57
|
+
matcher = ExampleMatcher.new("example_group", "example")
|
58
|
+
matcher.should match_description("example_group before(:all)")
|
54
59
|
end
|
55
60
|
|
56
61
|
it "should escape regexp chars" do
|
@@ -58,13 +63,13 @@ module Spec
|
|
58
63
|
matcher.should_not match_description("con p")
|
59
64
|
end
|
60
65
|
|
61
|
-
it "should match when
|
66
|
+
it "should match when example_group is modularized" do
|
62
67
|
matcher = ExampleMatcher.new("MyModule::MyClass", "example")
|
63
68
|
matcher.should match_description("MyClass example")
|
64
69
|
end
|
65
70
|
end
|
66
71
|
|
67
|
-
describe ExampleMatcher, "normal case" do
|
72
|
+
describe ExampleMatcher, "#matches? normal case" do
|
68
73
|
it "matches when passed in example matches" do
|
69
74
|
matcher = ExampleMatcher.new("Foo", "bar")
|
70
75
|
matcher.matches?(["no match", "Foo bar"]).should == true
|
@@ -76,7 +81,7 @@ module Spec
|
|
76
81
|
end
|
77
82
|
end
|
78
83
|
|
79
|
-
describe ExampleMatcher, "where description has '::' in it" do
|
84
|
+
describe ExampleMatcher, "#matches? where description has '::' in it" do
|
80
85
|
it "matches when passed in example matches" do
|
81
86
|
matcher = ExampleMatcher.new("Foo::Bar", "baz")
|
82
87
|
matcher.matches?(["no match", "Foo::Bar baz"]).should == true
|
@@ -0,0 +1,75 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
+
|
3
|
+
module Spec
|
4
|
+
module Example
|
5
|
+
module ModuleThatIsReopened
|
6
|
+
end
|
7
|
+
|
8
|
+
module ExampleMethods
|
9
|
+
include ModuleThatIsReopened
|
10
|
+
end
|
11
|
+
|
12
|
+
module ModuleThatIsReopened
|
13
|
+
def module_that_is_reopened_method
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "ExampleMethods with an included module that is reopened" do
|
18
|
+
it "should have repoened methods" do
|
19
|
+
method(:module_that_is_reopened_method).should_not be_nil
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe ExampleMethods, "lifecycle" do
|
24
|
+
before do
|
25
|
+
@options = ::Spec::Runner::Options.new(StringIO.new, StringIO.new)
|
26
|
+
@options.formatters << mock("formatter", :null_object => true)
|
27
|
+
@options.backtrace_tweaker = mock("backtrace_tweaker", :null_object => true)
|
28
|
+
@reporter = FakeReporter.new(@options)
|
29
|
+
@options.reporter = @reporter
|
30
|
+
|
31
|
+
ExampleMethods.before_all_parts.should == []
|
32
|
+
ExampleMethods.before_each_parts.should == []
|
33
|
+
ExampleMethods.after_each_parts.should == []
|
34
|
+
ExampleMethods.after_all_parts.should == []
|
35
|
+
def ExampleMethods.count
|
36
|
+
@count ||= 0
|
37
|
+
@count = @count + 1
|
38
|
+
@count
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
after do
|
43
|
+
ExampleMethods.instance_variable_set("@before_all_parts", [])
|
44
|
+
ExampleMethods.instance_variable_set("@before_each_parts", [])
|
45
|
+
ExampleMethods.instance_variable_set("@after_each_parts", [])
|
46
|
+
ExampleMethods.instance_variable_set("@after_all_parts", [])
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should pass before and after callbacks to all ExampleGroup subclasses" do
|
50
|
+
ExampleMethods.before(:all) do
|
51
|
+
ExampleMethods.count.should == 1
|
52
|
+
end
|
53
|
+
|
54
|
+
ExampleMethods.before(:each) do
|
55
|
+
ExampleMethods.count.should == 2
|
56
|
+
end
|
57
|
+
|
58
|
+
ExampleMethods.after(:each) do
|
59
|
+
ExampleMethods.count.should == 3
|
60
|
+
end
|
61
|
+
|
62
|
+
ExampleMethods.after(:all) do
|
63
|
+
ExampleMethods.count.should == 4
|
64
|
+
end
|
65
|
+
|
66
|
+
@example_group = Class.new(ExampleGroup) do
|
67
|
+
it "should use ExampleMethods callbacks" do
|
68
|
+
end
|
69
|
+
end
|
70
|
+
@example_group.run
|
71
|
+
ExampleMethods.count.should == 5
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,194 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
+
|
3
|
+
module Spec
|
4
|
+
module Example
|
5
|
+
# describe "Spec::Example::ExampleRunner", "#run", :shared => true do
|
6
|
+
# before(:each) do
|
7
|
+
# @options = ::Spec::Runner::Options.new(StringIO.new, StringIO.new)
|
8
|
+
# @reporter = ::Spec::Runner::Reporter.new(@options)
|
9
|
+
# @options.reporter = @reporter
|
10
|
+
# @example_group_class = Class.new(ExampleGroup) do
|
11
|
+
# plugin_mock_framework
|
12
|
+
# describe("Some Examples")
|
13
|
+
# end
|
14
|
+
# end
|
15
|
+
#
|
16
|
+
# def create_runner(example_definition)
|
17
|
+
# example = @example_group_class.new(example_definition)
|
18
|
+
# runner = ExampleGroup.new(@options, example)
|
19
|
+
# runner.stub!(:verify_mocks)
|
20
|
+
# runner.stub!(:teardown_mocks)
|
21
|
+
# runner
|
22
|
+
# end
|
23
|
+
# end
|
24
|
+
#
|
25
|
+
# describe ExampleRunner, "#run with blank passing example" do
|
26
|
+
# it_should_behave_like "Spec::Example::ExampleRunner#run"
|
27
|
+
#
|
28
|
+
# before do
|
29
|
+
# @e = @example_group_class.it("example") {}
|
30
|
+
# @runner = create_runner(@e)
|
31
|
+
# end
|
32
|
+
#
|
33
|
+
# it "should send reporter example_started" do
|
34
|
+
# @reporter.should_receive(:example_started).with(equal(@e))
|
35
|
+
# @runner.run
|
36
|
+
# end
|
37
|
+
#
|
38
|
+
# it "should report its name for dry run" do
|
39
|
+
# @options.dry_run = true
|
40
|
+
# @reporter.should_receive(:example_finished).with(equal(@e), nil)
|
41
|
+
# @runner.run
|
42
|
+
# end
|
43
|
+
#
|
44
|
+
# it "should report success" do
|
45
|
+
# @reporter.should_receive(:example_finished).with(equal(@e), nil)
|
46
|
+
# @runner.run
|
47
|
+
# end
|
48
|
+
# end
|
49
|
+
#
|
50
|
+
# describe ExampleRunner, "#run with a failing example" do
|
51
|
+
# predicate_matchers[:is_a] = [:is_a?]
|
52
|
+
# it_should_behave_like "Spec::Example::ExampleRunner#run"
|
53
|
+
#
|
54
|
+
# before do
|
55
|
+
# @e = @example_group_class.it("example") do
|
56
|
+
# (2+2).should == 5
|
57
|
+
# end
|
58
|
+
# @runner = create_runner(@e)
|
59
|
+
# end
|
60
|
+
#
|
61
|
+
# it "should report failure due to failure" do
|
62
|
+
# @reporter.should_receive(:example_finished).with(
|
63
|
+
# equal(@e),
|
64
|
+
# is_a(Spec::Expectations::ExpectationNotMetError)
|
65
|
+
# )
|
66
|
+
# @runner.run
|
67
|
+
# end
|
68
|
+
# end
|
69
|
+
#
|
70
|
+
# describe ExampleRunner, "#run with a erroring example" do
|
71
|
+
# it_should_behave_like "Spec::Example::ExampleRunner#run"
|
72
|
+
#
|
73
|
+
# before do
|
74
|
+
# @error = error = NonStandardError.new("in body")
|
75
|
+
# @example_definition = @example_group_class.it("example") do
|
76
|
+
# raise(error)
|
77
|
+
# end
|
78
|
+
# @runner = create_runner(@example_definition)
|
79
|
+
# end
|
80
|
+
#
|
81
|
+
# it "should report failure due to error" do
|
82
|
+
# @reporter.should_receive(:example_finished).with(
|
83
|
+
# equal(@example_definition),
|
84
|
+
# @error
|
85
|
+
# )
|
86
|
+
# @runner.run
|
87
|
+
# end
|
88
|
+
#
|
89
|
+
# it "should run after_each block" do
|
90
|
+
# @example_group_class.after(:each) do
|
91
|
+
# raise("in after_each")
|
92
|
+
# end
|
93
|
+
# @reporter.should_receive(:example_finished) do |example_definition, error|
|
94
|
+
# example_definition.should equal(@example_definition)
|
95
|
+
# error.message.should eql("in body")
|
96
|
+
# end
|
97
|
+
# @runner.run
|
98
|
+
# end
|
99
|
+
# end
|
100
|
+
#
|
101
|
+
# describe ExampleRunner, "#run where after_each fails" do
|
102
|
+
# it_should_behave_like "Spec::Example::ExampleRunner#run"
|
103
|
+
#
|
104
|
+
# before do
|
105
|
+
# @example_ran = example_ran = false
|
106
|
+
# @example_definition = @example_group_class.it("should not run") do
|
107
|
+
# example_ran = true
|
108
|
+
# end
|
109
|
+
# @runner = create_runner(@example_definition)
|
110
|
+
# @example_group_class.after(:each) { raise(NonStandardError.new("in after_each")) }
|
111
|
+
# end
|
112
|
+
#
|
113
|
+
# it "should report failure location when in after_each" do
|
114
|
+
# @reporter.should_receive(:example_finished) do |example_definition, error|
|
115
|
+
# example_definition.should equal(@example_definition)
|
116
|
+
# error.message.should eql("in after_each")
|
117
|
+
# end
|
118
|
+
# @runner.run
|
119
|
+
# end
|
120
|
+
# end
|
121
|
+
#
|
122
|
+
# describe ExampleRunner, "#run with use cases" do
|
123
|
+
# predicate_matchers[:is_a] = [:is_a?]
|
124
|
+
# it_should_behave_like "Spec::Example::ExampleRunner#run"
|
125
|
+
#
|
126
|
+
# it "should report NO NAME when told to use generated description with --dry-run" do
|
127
|
+
# @options.dry_run = true
|
128
|
+
# example_definition = @example_group_class.it() do
|
129
|
+
# 5.should == 5
|
130
|
+
# end
|
131
|
+
# runner = create_runner(example_definition)
|
132
|
+
#
|
133
|
+
# @reporter.should_receive(:example_finished) do |example_definition, error|
|
134
|
+
# example_definition.description.should == "NO NAME (Because of --dry-run)"
|
135
|
+
# end
|
136
|
+
# runner.run
|
137
|
+
# end
|
138
|
+
#
|
139
|
+
# it "should report given name if present with --dry-run" do
|
140
|
+
# @options.dry_run = true
|
141
|
+
# example_definition = @example_group_class.it("example name") do
|
142
|
+
# 5.should == 5
|
143
|
+
# end
|
144
|
+
# runner = create_runner(example_definition)
|
145
|
+
#
|
146
|
+
# @reporter.should_receive(:example_finished) do |example_definition, error|
|
147
|
+
# example_definition.description.should == "example name"
|
148
|
+
# end
|
149
|
+
# runner.run
|
150
|
+
# end
|
151
|
+
#
|
152
|
+
# it "should report NO NAME when told to use generated description with no expectations" do
|
153
|
+
# example_definition = @example_group_class.it() {}
|
154
|
+
# runner = create_runner(example_definition)
|
155
|
+
# @reporter.should_receive(:example_finished) do |example, error|
|
156
|
+
# example.description.should == "NO NAME (Because there were no expectations)"
|
157
|
+
# end
|
158
|
+
# runner.run
|
159
|
+
# end
|
160
|
+
#
|
161
|
+
# it "should report NO NAME when told to use generated description and matcher fails" do
|
162
|
+
# example_definition = @example_group_class.it() do
|
163
|
+
# 5.should "" # Has no matches? method..
|
164
|
+
# end
|
165
|
+
# runner = create_runner(example_definition)
|
166
|
+
#
|
167
|
+
# @reporter.should_receive(:example_finished) do |example, error|
|
168
|
+
# example_definition.description.should == "NO NAME (Because of Error raised in matcher)"
|
169
|
+
# end
|
170
|
+
# runner.run
|
171
|
+
# end
|
172
|
+
#
|
173
|
+
# it "should report generated description when told to and it is available" do
|
174
|
+
# example_definition = @example_group_class.it() {
|
175
|
+
# 5.should == 5
|
176
|
+
# }
|
177
|
+
# runner = create_runner(example_definition)
|
178
|
+
#
|
179
|
+
# @reporter.should_receive(:example_finished) do |example_definition, error|
|
180
|
+
# example_definition.description.should == "should == 5"
|
181
|
+
# end
|
182
|
+
# runner.run
|
183
|
+
# end
|
184
|
+
#
|
185
|
+
# it "should unregister description_generated callback (lest a memory leak should build up)" do
|
186
|
+
# example_definition = @example_group_class.it("something")
|
187
|
+
# runner = create_runner(example_definition)
|
188
|
+
#
|
189
|
+
# Spec::Matchers.should_receive(:example_finished)
|
190
|
+
# runner.run
|
191
|
+
# end
|
192
|
+
# end
|
193
|
+
end
|
194
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
+
|
3
|
+
module Spec
|
4
|
+
module Example
|
5
|
+
# describe Example do
|
6
|
+
# before(:each) do
|
7
|
+
# @example = Example.new "example" do
|
8
|
+
# foo
|
9
|
+
# end
|
10
|
+
# end
|
11
|
+
#
|
12
|
+
# it "should tell you its docstring" do
|
13
|
+
# @example.description.should == "example"
|
14
|
+
# end
|
15
|
+
#
|
16
|
+
# it "should execute its block in the context provided" do
|
17
|
+
# context = Class.new do
|
18
|
+
# def foo
|
19
|
+
# "foo"
|
20
|
+
# end
|
21
|
+
# end.new
|
22
|
+
# @example.run_in(context).should == "foo"
|
23
|
+
# end
|
24
|
+
# end
|
25
|
+
#
|
26
|
+
# describe Example, "#description" do
|
27
|
+
# it "should default to NO NAME when not passed anything when there are no matchers" do
|
28
|
+
# example = Example.new {}
|
29
|
+
# example.run_in(Object.new)
|
30
|
+
# example.description.should == "NO NAME"
|
31
|
+
# end
|
32
|
+
#
|
33
|
+
# it "should default to NO NAME description (Because of --dry-run) when passed nil and there are no matchers" do
|
34
|
+
# example = Example.new(nil) {}
|
35
|
+
# example.run_in(Object.new)
|
36
|
+
# example.description.should == "NO NAME"
|
37
|
+
# end
|
38
|
+
#
|
39
|
+
# it "should allow description to be overridden" do
|
40
|
+
# example = Example.new("Test description")
|
41
|
+
# example.description.should == "Test description"
|
42
|
+
# end
|
43
|
+
#
|
44
|
+
# it "should use description generated from matcher when there is no passed in description" do
|
45
|
+
# example = Example.new(nil) do
|
46
|
+
# 1.should == 1
|
47
|
+
# end
|
48
|
+
# example.run_in(Object.new)
|
49
|
+
# example.description.should == "should == 1"
|
50
|
+
# end
|
51
|
+
# end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
+
|
3
|
+
module Spec
|
4
|
+
module Example
|
5
|
+
describe 'Nested Example Groups' do
|
6
|
+
parent = self
|
7
|
+
|
8
|
+
def count
|
9
|
+
@count ||= 0
|
10
|
+
@count = @count + 1
|
11
|
+
@count
|
12
|
+
end
|
13
|
+
|
14
|
+
before(:all) do
|
15
|
+
count.should == 1
|
16
|
+
end
|
17
|
+
|
18
|
+
before(:all) do
|
19
|
+
count.should == 2
|
20
|
+
end
|
21
|
+
|
22
|
+
before(:each) do
|
23
|
+
count.should == 3
|
24
|
+
end
|
25
|
+
|
26
|
+
before(:each) do
|
27
|
+
count.should == 4
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should run before(:all), before(:each), example, after(:each), after(:all) in order" do
|
31
|
+
count.should == 5
|
32
|
+
end
|
33
|
+
|
34
|
+
after(:each) do
|
35
|
+
count.should == 7
|
36
|
+
end
|
37
|
+
|
38
|
+
after(:each) do
|
39
|
+
count.should == 6
|
40
|
+
end
|
41
|
+
|
42
|
+
after(:all) do
|
43
|
+
count.should == 9
|
44
|
+
end
|
45
|
+
|
46
|
+
after(:all) do
|
47
|
+
count.should == 8
|
48
|
+
end
|
49
|
+
|
50
|
+
describe 'nested example group' do
|
51
|
+
self.superclass.should == parent
|
52
|
+
|
53
|
+
it "should run all before and after callbacks" do
|
54
|
+
count.should == 5
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|