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
data/EXAMPLES.rd
DELETED
@@ -1,111 +0,0 @@
|
|
1
|
-
# Examples with no descriptions
|
2
|
-
# * should equal 5
|
3
|
-
# * should be < 5
|
4
|
-
# * should include "a"
|
5
|
-
# * should respond to #size
|
6
|
-
# State created in before(:all)
|
7
|
-
# * should be accessible from example
|
8
|
-
# * should not have sideffects
|
9
|
-
# BehaveAsExample::BluesGuitarist
|
10
|
-
# * should behave as guitarist
|
11
|
-
# BehaveAsExample::RockGuitarist
|
12
|
-
# * should behave as guitarist
|
13
|
-
# BehaveAsExample::ClassicGuitarist
|
14
|
-
# * should not behave as guitarist
|
15
|
-
# Animals::Mouse
|
16
|
-
# * should eat cheese
|
17
|
-
# * should not eat cat
|
18
|
-
# Some integers
|
19
|
-
# * The root of 1 square should be 1
|
20
|
-
# * The root of 2 square should be 2
|
21
|
-
# * The root of 3 square should be 3
|
22
|
-
# * The root of 4 square should be 4
|
23
|
-
# * The root of 5 square should be 5
|
24
|
-
# * The root of 6 square should be 6
|
25
|
-
# * The root of 7 square should be 7
|
26
|
-
# * The root of 8 square should be 8
|
27
|
-
# * The root of 9 square should be 9
|
28
|
-
# * The root of 10 square should be 10
|
29
|
-
# A FileAccessor
|
30
|
-
# * should open a file and pass it to the processor's process method
|
31
|
-
# Greeter
|
32
|
-
# * should say Hi to person
|
33
|
-
# * should say Hi to nobody
|
34
|
-
# a context with helper a method
|
35
|
-
# * should make that method available to specs
|
36
|
-
# An IoProcessor
|
37
|
-
# * should raise nothing when the file is exactly 32 bytes
|
38
|
-
# * should raise an exception when the file length is less than 32 bytes
|
39
|
-
# A legacy spec
|
40
|
-
# * should work fine
|
41
|
-
# A consumer of a mock
|
42
|
-
# * should be able to send messages to the mock
|
43
|
-
# a mock
|
44
|
-
# * should be able to mock the same message twice w/ different args
|
45
|
-
# * should be able to mock the same message twice w/ different args in reverse order
|
46
|
-
# A partial mock
|
47
|
-
# * should work at the class level
|
48
|
-
# * should revert to the original after each spec
|
49
|
-
# * can be mocked w/ ordering
|
50
|
-
# pending example (using pending method)
|
51
|
-
# * pending example (using pending method) should be reported as "PENDING: for some reason" [PENDING: for some reason]
|
52
|
-
# pending example (with no block)
|
53
|
-
# * pending example (with no block) should be reported as "PENDING: Not Yet Implemented" [PENDING: Not Yet Implemented]
|
54
|
-
# pending example (with block for pending)
|
55
|
-
# * pending example (with block for pending) should have a failing block, passed to pending, reported as "PENDING: for some reason" [PENDING: for some reason]
|
56
|
-
# BDD framework
|
57
|
-
# * should be adopted quickly
|
58
|
-
# * should be intuitive
|
59
|
-
# SharedBehaviourExample::OneThing
|
60
|
-
# * should do what things do
|
61
|
-
# * should have access to helper methods defined in the shared behaviour
|
62
|
-
# SharedBehaviourExample::AnotherThing
|
63
|
-
# * should do what things do
|
64
|
-
# Stack (empty)
|
65
|
-
# * should be empty
|
66
|
-
# * should not be full
|
67
|
-
# * should add to the top when sent #push
|
68
|
-
# * should complain when sent #peek
|
69
|
-
# * should complain when sent #pop
|
70
|
-
# Stack (with one item)
|
71
|
-
# * should not be empty
|
72
|
-
# * should return the top item when sent #peek
|
73
|
-
# * should NOT remove the top item when sent #peek
|
74
|
-
# * should return the top item when sent #pop
|
75
|
-
# * should remove the top item when sent #pop
|
76
|
-
# * should not be full
|
77
|
-
# * should add to the top when sent #push
|
78
|
-
# Stack (with one item less than capacity)
|
79
|
-
# * should not be empty
|
80
|
-
# * should return the top item when sent #peek
|
81
|
-
# * should NOT remove the top item when sent #peek
|
82
|
-
# * should return the top item when sent #pop
|
83
|
-
# * should remove the top item when sent #pop
|
84
|
-
# * should not be full
|
85
|
-
# * should add to the top when sent #push
|
86
|
-
# Stack (full)
|
87
|
-
# * should be full
|
88
|
-
# * should not be empty
|
89
|
-
# * should return the top item when sent #peek
|
90
|
-
# * should NOT remove the top item when sent #peek
|
91
|
-
# * should return the top item when sent #pop
|
92
|
-
# * should remove the top item when sent #pop
|
93
|
-
# * should complain on #push
|
94
|
-
# A consumer of a stub
|
95
|
-
# * should be able to stub methods on any Object
|
96
|
-
# A stubbed method on a class
|
97
|
-
# * should return the stubbed value
|
98
|
-
# * should revert to the original method after each spec
|
99
|
-
# * can stub! and mock the same message
|
100
|
-
# A mock
|
101
|
-
# * can stub!
|
102
|
-
# * can stub! and mock
|
103
|
-
# * can stub! and mock the same message
|
104
|
-
# RSpec should integrate with Test::Unit::TestCase
|
105
|
-
# * TestCase#setup should be called.
|
106
|
-
# * RSpec should be able to access TestCase methods
|
107
|
-
# * RSpec should be able to accept included modules
|
108
|
-
|
109
|
-
Finished in 0.030063 seconds
|
110
|
-
|
111
|
-
78 examples, 0 failures, 3 pending
|
@@ -1,25 +0,0 @@
|
|
1
|
-
|
2
|
-
class MultiThreadedBehaviourRunner < Spec::Runner::BehaviourRunner
|
3
|
-
def initialize(options)
|
4
|
-
super
|
5
|
-
# configure these
|
6
|
-
@thread_count = 4
|
7
|
-
@thread_wait = 0
|
8
|
-
end
|
9
|
-
|
10
|
-
def run_behaviours(behaviours)
|
11
|
-
@threads = []
|
12
|
-
q = Queue.new
|
13
|
-
behaviours.each { |b| q << b}
|
14
|
-
@thread_count.times do
|
15
|
-
@threads << Thread.new(q) do |queue|
|
16
|
-
while not queue.empty?
|
17
|
-
behaviour = queue.pop
|
18
|
-
behaviour.run(@options.reporter, @options.dry_run, @options.reverse)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
sleep @thread_wait
|
22
|
-
end
|
23
|
-
@threads.each {|t| t.join}
|
24
|
-
end
|
25
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
-
|
3
|
-
module SharedBehaviourExample
|
4
|
-
class OneThing
|
5
|
-
def what_things_do
|
6
|
-
"stuff"
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
class AnotherThing
|
11
|
-
def what_things_do
|
12
|
-
"stuff"
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
describe "All Things", :shared => true do
|
17
|
-
def helper_method
|
18
|
-
"helper method"
|
19
|
-
end
|
20
|
-
|
21
|
-
it "should do what things do" do
|
22
|
-
@thing.what_things_do.should == "stuff"
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
describe OneThing do
|
27
|
-
it_should_behave_like "All Things"
|
28
|
-
before(:each) { @thing = OneThing.new }
|
29
|
-
|
30
|
-
it "should have access to helper methods defined in the shared behaviour" do
|
31
|
-
helper_method.should == "helper method"
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
describe AnotherThing do
|
36
|
-
it_should_behave_like "All Things"
|
37
|
-
before(:each) { @thing = AnotherThing.new }
|
38
|
-
end
|
39
|
-
end
|
data/examples/spec_helper.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../lib/spec'
|
@@ -1,26 +0,0 @@
|
|
1
|
-
#This is an example of using RSpec's expectations in test/unit.
|
2
|
-
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), "..", "lib")
|
3
|
-
|
4
|
-
require 'test/unit'
|
5
|
-
require 'spec/test_case_adapter'
|
6
|
-
|
7
|
-
class IntegratingRSpecExpectationsIntoTestCaseTest < Test::Unit::TestCase
|
8
|
-
|
9
|
-
def test_should_support_rspecs_equality_expectations
|
10
|
-
5.should == 5
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_support_rspecs_comparison_expectations
|
14
|
-
5.should be > 4
|
15
|
-
end
|
16
|
-
|
17
|
-
class Band
|
18
|
-
def players
|
19
|
-
["John", "Paul", "George", "Ringo"]
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_should_support_rspecs_collection_expectations
|
24
|
-
Band.new.should have(4).players
|
25
|
-
end
|
26
|
-
end
|
data/examples/test_case_spec.rb
DELETED
@@ -1,65 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
-
require 'test/unit'
|
3
|
-
|
4
|
-
class RSpecIntegrationTest < Test::Unit::TestCase
|
5
|
-
def self.fixtures(*args)
|
6
|
-
@@fixtures = true
|
7
|
-
end
|
8
|
-
|
9
|
-
def self.verify_class_method
|
10
|
-
@@fixtures.should == true
|
11
|
-
end
|
12
|
-
|
13
|
-
def setup
|
14
|
-
@test_case_setup_called = true
|
15
|
-
end
|
16
|
-
|
17
|
-
def teardown
|
18
|
-
@test_case_teardown_called = true
|
19
|
-
end
|
20
|
-
|
21
|
-
def run(result)
|
22
|
-
end
|
23
|
-
|
24
|
-
def helper_method
|
25
|
-
@helper_method_called = true
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
module RandomHelperModule
|
30
|
-
def random_task
|
31
|
-
@random_task_called = true
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
describe "RSpec should integrate with Test::Unit::TestCase" do
|
36
|
-
inherit RSpecIntegrationTest
|
37
|
-
include RandomHelperModule
|
38
|
-
|
39
|
-
fixtures :some_table
|
40
|
-
|
41
|
-
prepend_before(:each) {setup}
|
42
|
-
|
43
|
-
before(:each) do
|
44
|
-
@rspec_setup_called = true
|
45
|
-
end
|
46
|
-
|
47
|
-
it "TestCase#setup should be called." do
|
48
|
-
@test_case_setup_called.should be_true
|
49
|
-
@rspec_setup_called.should be_true
|
50
|
-
end
|
51
|
-
|
52
|
-
it "RSpec should be able to access TestCase methods" do
|
53
|
-
helper_method
|
54
|
-
@helper_method_called.should be_true
|
55
|
-
end
|
56
|
-
|
57
|
-
it "RSpec should be able to accept included modules" do
|
58
|
-
random_task
|
59
|
-
@random_task_called.should be_true
|
60
|
-
end
|
61
|
-
|
62
|
-
after(:each) do
|
63
|
-
RSpecIntegrationTest.verify_class_method
|
64
|
-
end
|
65
|
-
end
|
data/lib/spec/dsl.rb
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
require 'spec/dsl/description'
|
2
|
-
require 'spec/dsl/errors'
|
3
|
-
require 'spec/dsl/configuration'
|
4
|
-
require 'spec/dsl/behaviour_callbacks'
|
5
|
-
require 'spec/dsl/behaviour'
|
6
|
-
require 'spec/dsl/behaviour_eval'
|
7
|
-
require 'spec/dsl/composite_proc_builder'
|
8
|
-
require 'spec/dsl/example'
|
9
|
-
require 'spec/dsl/example_matcher'
|
10
|
-
require 'spec/dsl/example_should_raise_handler'
|
11
|
-
require 'spec/dsl/behaviour_factory'
|
data/lib/spec/dsl/behaviour.rb
DELETED
@@ -1,220 +0,0 @@
|
|
1
|
-
module Spec
|
2
|
-
module DSL
|
3
|
-
class EvalModule < Module; end
|
4
|
-
class Behaviour
|
5
|
-
extend BehaviourCallbacks
|
6
|
-
|
7
|
-
class << self
|
8
|
-
def add_shared_behaviour(behaviour)
|
9
|
-
return if behaviour.equal?(found_behaviour = find_shared_behaviour(behaviour.description))
|
10
|
-
return if found_behaviour and File.expand_path(behaviour.description[:spec_path]) == File.expand_path(found_behaviour.description[:spec_path])
|
11
|
-
raise ArgumentError.new("Shared Behaviour '#{behaviour.description}' already exists") if found_behaviour
|
12
|
-
shared_behaviours << behaviour
|
13
|
-
end
|
14
|
-
|
15
|
-
def find_shared_behaviour(behaviour_description)
|
16
|
-
shared_behaviours.find { |b| b.description == behaviour_description }
|
17
|
-
end
|
18
|
-
|
19
|
-
def shared_behaviours
|
20
|
-
# TODO - this needs to be global, or at least accessible from
|
21
|
-
# from subclasses of Behaviour in a centralized place. I'm not loving
|
22
|
-
# this as a solution, but it works for now.
|
23
|
-
$shared_behaviours ||= []
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def initialize(*args, &behaviour_block)
|
28
|
-
init_description(*args)
|
29
|
-
init_eval_module
|
30
|
-
before_eval
|
31
|
-
eval_behaviour(&behaviour_block)
|
32
|
-
end
|
33
|
-
|
34
|
-
private
|
35
|
-
|
36
|
-
def init_description(*args)
|
37
|
-
unless self.class == Behaviour
|
38
|
-
args << {} unless Hash === args.last
|
39
|
-
args.last[:behaviour_class] = self.class
|
40
|
-
end
|
41
|
-
@description = Description.new(*args)
|
42
|
-
end
|
43
|
-
|
44
|
-
def init_eval_module
|
45
|
-
@eval_module = EvalModule.new
|
46
|
-
@eval_module.extend BehaviourEval::ModuleMethods
|
47
|
-
@eval_module.include BehaviourEval::InstanceMethods
|
48
|
-
@eval_module.include described_type if described_type.class == Module
|
49
|
-
@eval_module.behaviour = self
|
50
|
-
@eval_module.description = @description
|
51
|
-
end
|
52
|
-
|
53
|
-
def eval_behaviour(&behaviour_block)
|
54
|
-
@eval_module.class_eval(&behaviour_block)
|
55
|
-
end
|
56
|
-
|
57
|
-
protected
|
58
|
-
|
59
|
-
def before_eval
|
60
|
-
end
|
61
|
-
|
62
|
-
public
|
63
|
-
|
64
|
-
def run(reporter, dry_run=false, reverse=false, timeout=nil)
|
65
|
-
raise "shared behaviours should never run" if shared?
|
66
|
-
# TODO - change add_behaviour to add_description ??????
|
67
|
-
reporter.add_behaviour(@description)
|
68
|
-
prepare_execution_context_class
|
69
|
-
before_all_errors = run_before_all(reporter, dry_run)
|
70
|
-
|
71
|
-
exs = reverse ? examples.reverse : examples
|
72
|
-
example_execution_context = nil
|
73
|
-
|
74
|
-
if before_all_errors.empty?
|
75
|
-
exs.each do |example|
|
76
|
-
example_execution_context = execution_context(example)
|
77
|
-
example_execution_context.copy_instance_variables_from(@before_and_after_all_context_instance) unless before_all_proc(behaviour_type).nil?
|
78
|
-
|
79
|
-
befores = before_each_proc(behaviour_type) {|e| raise e}
|
80
|
-
afters = after_each_proc(behaviour_type)
|
81
|
-
example.run(reporter, befores, afters, dry_run, example_execution_context, timeout)
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
@before_and_after_all_context_instance.copy_instance_variables_from(example_execution_context) unless after_all_proc(behaviour_type).nil?
|
86
|
-
run_after_all(reporter, dry_run)
|
87
|
-
end
|
88
|
-
|
89
|
-
def number_of_examples
|
90
|
-
examples.length
|
91
|
-
end
|
92
|
-
|
93
|
-
def matches?(specified_examples)
|
94
|
-
matcher ||= ExampleMatcher.new(description)
|
95
|
-
|
96
|
-
examples.each do |example|
|
97
|
-
return true if example.matches?(matcher, specified_examples)
|
98
|
-
end
|
99
|
-
return false
|
100
|
-
end
|
101
|
-
|
102
|
-
def shared?
|
103
|
-
@description[:shared]
|
104
|
-
end
|
105
|
-
|
106
|
-
def retain_examples_matching!(specified_examples)
|
107
|
-
return if specified_examples.index(description)
|
108
|
-
matcher = ExampleMatcher.new(description)
|
109
|
-
examples.reject! do |example|
|
110
|
-
!example.matches?(matcher, specified_examples)
|
111
|
-
end
|
112
|
-
end
|
113
|
-
|
114
|
-
def methods
|
115
|
-
my_methods = super
|
116
|
-
my_methods |= @eval_module.methods
|
117
|
-
my_methods
|
118
|
-
end
|
119
|
-
|
120
|
-
# Includes modules in the Behaviour (the <tt>describe</tt> block).
|
121
|
-
def include(*args)
|
122
|
-
@eval_module.include(*args)
|
123
|
-
end
|
124
|
-
|
125
|
-
def behaviour_type #:nodoc:
|
126
|
-
@description[:behaviour_type]
|
127
|
-
end
|
128
|
-
|
129
|
-
# Sets the #number on each Example and returns the next number
|
130
|
-
def set_sequence_numbers(number, reverse) #:nodoc:
|
131
|
-
exs = reverse ? examples.reverse : examples
|
132
|
-
exs.each do |example|
|
133
|
-
example.number = number
|
134
|
-
number += 1
|
135
|
-
end
|
136
|
-
number
|
137
|
-
end
|
138
|
-
|
139
|
-
protected
|
140
|
-
|
141
|
-
# Messages that this class does not understand
|
142
|
-
# are passed directly to the @eval_module.
|
143
|
-
def method_missing(sym, *args, &block)
|
144
|
-
@eval_module.send(sym, *args, &block)
|
145
|
-
end
|
146
|
-
|
147
|
-
def prepare_execution_context_class
|
148
|
-
plugin_mock_framework
|
149
|
-
weave_in_included_modules
|
150
|
-
define_predicate_matchers #this is in behaviour_eval
|
151
|
-
execution_context_class
|
152
|
-
end
|
153
|
-
|
154
|
-
def weave_in_included_modules
|
155
|
-
mods = [@eval_module]
|
156
|
-
mods << included_modules.dup
|
157
|
-
mods << Spec::Runner.configuration.modules_for(behaviour_type)
|
158
|
-
execution_context_class.class_eval do
|
159
|
-
# WARNING - the following can be executed in the context of any
|
160
|
-
# class, and should never pass more than one module to include
|
161
|
-
# even though we redefine include in this class. This is NOT
|
162
|
-
# tested anywhere, hence this comment.
|
163
|
-
mods.flatten.each {|mod| include mod}
|
164
|
-
end
|
165
|
-
end
|
166
|
-
|
167
|
-
def execution_context(example)
|
168
|
-
execution_context_class.new(example)
|
169
|
-
end
|
170
|
-
|
171
|
-
def run_before_all(reporter, dry_run)
|
172
|
-
errors = []
|
173
|
-
unless dry_run
|
174
|
-
begin
|
175
|
-
@before_and_after_all_context_instance = execution_context(nil)
|
176
|
-
@before_and_after_all_context_instance.instance_eval(&before_all_proc(behaviour_type))
|
177
|
-
rescue Exception => e
|
178
|
-
errors << e
|
179
|
-
location = "before(:all)"
|
180
|
-
# The easiest is to report this as an example failure. We don't have an Example
|
181
|
-
# at this point, so we'll just create a placeholder.
|
182
|
-
reporter.example_finished(Example.new(location), e, location) if reporter
|
183
|
-
end
|
184
|
-
end
|
185
|
-
errors
|
186
|
-
end
|
187
|
-
|
188
|
-
def run_after_all(reporter, dry_run)
|
189
|
-
unless dry_run
|
190
|
-
begin
|
191
|
-
@before_and_after_all_context_instance ||= execution_context(nil)
|
192
|
-
@before_and_after_all_context_instance.instance_eval(&after_all_proc(behaviour_type))
|
193
|
-
rescue Exception => e
|
194
|
-
location = "after(:all)"
|
195
|
-
reporter.example_finished(Example.new(location), e, location) if reporter
|
196
|
-
end
|
197
|
-
end
|
198
|
-
end
|
199
|
-
|
200
|
-
def plugin_mock_framework
|
201
|
-
case mock_framework = Spec::Runner.configuration.mock_framework
|
202
|
-
when Module
|
203
|
-
include mock_framework
|
204
|
-
else
|
205
|
-
require Spec::Runner.configuration.mock_framework
|
206
|
-
include Spec::Plugins::MockFramework
|
207
|
-
end
|
208
|
-
end
|
209
|
-
|
210
|
-
def description
|
211
|
-
@description.to_s
|
212
|
-
end
|
213
|
-
|
214
|
-
def described_type
|
215
|
-
@description.described_type
|
216
|
-
end
|
217
|
-
|
218
|
-
end
|
219
|
-
end
|
220
|
-
end
|