dchelimsky-rspec 1.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +1192 -0
- data/License.txt +22 -0
- data/Manifest.txt +403 -0
- data/README.txt +39 -0
- data/Rakefile +90 -0
- data/TODO.txt +10 -0
- data/bin/autospec +4 -0
- data/bin/spec +4 -0
- data/examples/pure/autogenerated_docstrings_example.rb +19 -0
- data/examples/pure/before_and_after_example.rb +40 -0
- data/examples/pure/behave_as_example.rb +45 -0
- data/examples/pure/custom_expectation_matchers.rb +54 -0
- data/examples/pure/custom_formatter.rb +12 -0
- data/examples/pure/dynamic_spec.rb +9 -0
- data/examples/pure/file_accessor.rb +19 -0
- data/examples/pure/file_accessor_spec.rb +38 -0
- data/examples/pure/greeter_spec.rb +31 -0
- data/examples/pure/helper_method_example.rb +14 -0
- data/examples/pure/io_processor.rb +8 -0
- data/examples/pure/io_processor_spec.rb +21 -0
- data/examples/pure/legacy_spec.rb +11 -0
- data/examples/pure/mocking_example.rb +27 -0
- data/examples/pure/multi_threaded_behaviour_runner.rb +28 -0
- data/examples/pure/nested_classes_example.rb +36 -0
- data/examples/pure/partial_mock_example.rb +29 -0
- data/examples/pure/pending_example.rb +20 -0
- data/examples/pure/predicate_example.rb +27 -0
- data/examples/pure/priority.txt +1 -0
- data/examples/pure/shared_example_group_example.rb +81 -0
- data/examples/pure/shared_stack_examples.rb +38 -0
- data/examples/pure/spec_helper.rb +3 -0
- data/examples/pure/stack.rb +36 -0
- data/examples/pure/stack_spec.rb +63 -0
- data/examples/pure/stack_spec_with_nested_example_groups.rb +67 -0
- data/examples/pure/stubbing_example.rb +69 -0
- data/examples/pure/yielding_example.rb +33 -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/.loadpath +5 -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/game.rb +23 -0
- data/examples/stories/game-of-life/life/grid.rb +43 -0
- data/examples/stories/game-of-life/life.rb +3 -0
- data/examples/stories/helper.rb +9 -0
- data/examples/stories/steps/addition_steps.rb +18 -0
- data/failing_examples/README.txt +7 -0
- data/failing_examples/diffing_spec.rb +36 -0
- data/failing_examples/failing_autogenerated_docstrings_example.rb +19 -0
- data/failing_examples/failure_in_setup.rb +10 -0
- data/failing_examples/failure_in_teardown.rb +10 -0
- data/failing_examples/mocking_example.rb +40 -0
- data/failing_examples/mocking_with_flexmock.rb +26 -0
- data/failing_examples/mocking_with_mocha.rb +25 -0
- data/failing_examples/mocking_with_rr.rb +27 -0
- data/failing_examples/partial_mock_example.rb +20 -0
- data/failing_examples/predicate_example.rb +29 -0
- data/failing_examples/raising_example.rb +47 -0
- data/failing_examples/spec_helper.rb +3 -0
- data/failing_examples/syntax_error_example.rb +7 -0
- data/failing_examples/team_spec.rb +44 -0
- data/failing_examples/timeout_behaviour.rb +7 -0
- data/init.rb +9 -0
- data/lib/autotest/discover.rb +3 -0
- data/lib/autotest/rspec.rb +46 -0
- data/lib/spec/adapters/ruby_engine/mri.rb +8 -0
- data/lib/spec/adapters/ruby_engine/rubinius.rb +8 -0
- data/lib/spec/adapters/ruby_engine.rb +26 -0
- data/lib/spec/adapters.rb +1 -0
- data/lib/spec/example/before_and_after_hooks.rb +93 -0
- data/lib/spec/example/configuration.rb +167 -0
- data/lib/spec/example/errors.rb +30 -0
- data/lib/spec/example/example_group.rb +25 -0
- data/lib/spec/example/example_group_factory.rb +81 -0
- data/lib/spec/example/example_group_methods.rb +368 -0
- data/lib/spec/example/example_matcher.rb +44 -0
- data/lib/spec/example/example_methods.rb +105 -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 +52 -0
- data/lib/spec/example.rb +12 -0
- data/lib/spec/expectations/differs/default.rb +66 -0
- data/lib/spec/expectations/errors.rb +12 -0
- data/lib/spec/expectations/extensions/object.rb +63 -0
- data/lib/spec/expectations/extensions/string_and_symbol.rb +17 -0
- data/lib/spec/expectations/extensions.rb +2 -0
- data/lib/spec/expectations/handler.rb +52 -0
- data/lib/spec/expectations.rb +56 -0
- data/lib/spec/extensions/class.rb +24 -0
- data/lib/spec/extensions/main.rb +87 -0
- data/lib/spec/extensions/metaclass.rb +7 -0
- data/lib/spec/extensions/object.rb +6 -0
- data/lib/spec/extensions.rb +4 -0
- data/lib/spec/interop/test/unit/autorunner.rb +6 -0
- data/lib/spec/interop/test/unit/testcase.rb +71 -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 +61 -0
- data/lib/spec/interop/test.rb +12 -0
- data/lib/spec/matchers/be.rb +221 -0
- data/lib/spec/matchers/be_close.rb +37 -0
- data/lib/spec/matchers/change.rb +148 -0
- data/lib/spec/matchers/eql.rb +43 -0
- data/lib/spec/matchers/equal.rb +43 -0
- data/lib/spec/matchers/exist.rb +22 -0
- data/lib/spec/matchers/has.rb +34 -0
- data/lib/spec/matchers/have.rb +150 -0
- data/lib/spec/matchers/include.rb +77 -0
- data/lib/spec/matchers/match.rb +41 -0
- data/lib/spec/matchers/operator_matcher.rb +79 -0
- data/lib/spec/matchers/raise_error.rb +132 -0
- data/lib/spec/matchers/respond_to.rb +46 -0
- data/lib/spec/matchers/satisfy.rb +47 -0
- data/lib/spec/matchers/simple_matcher.rb +132 -0
- data/lib/spec/matchers/throw_symbol.rb +74 -0
- data/lib/spec/matchers.rb +162 -0
- data/lib/spec/mocks/argument_constraints.rb +165 -0
- data/lib/spec/mocks/argument_expectation.rb +49 -0
- data/lib/spec/mocks/error_generator.rb +84 -0
- data/lib/spec/mocks/errors.rb +10 -0
- data/lib/spec/mocks/extensions/object.rb +3 -0
- data/lib/spec/mocks/extensions.rb +1 -0
- data/lib/spec/mocks/framework.rb +15 -0
- data/lib/spec/mocks/message_expectation.rb +331 -0
- data/lib/spec/mocks/methods.rb +51 -0
- data/lib/spec/mocks/mock.rb +56 -0
- data/lib/spec/mocks/order_group.rb +29 -0
- data/lib/spec/mocks/proxy.rb +224 -0
- data/lib/spec/mocks/space.rb +28 -0
- data/lib/spec/mocks/spec_methods.rb +46 -0
- data/lib/spec/mocks.rb +200 -0
- data/lib/spec/rake/spectask.rb +227 -0
- data/lib/spec/rake/verify_rcov.rb +52 -0
- data/lib/spec/runner/backtrace_tweaker.rb +56 -0
- data/lib/spec/runner/class_and_arguments_parser.rb +16 -0
- data/lib/spec/runner/command_line.rb +17 -0
- data/lib/spec/runner/drb_command_line.rb +20 -0
- data/lib/spec/runner/example_group_runner.rb +59 -0
- data/lib/spec/runner/formatter/base_formatter.rb +79 -0
- data/lib/spec/runner/formatter/base_text_formatter.rb +126 -0
- data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +27 -0
- data/lib/spec/runner/formatter/failing_examples_formatter.rb +20 -0
- data/lib/spec/runner/formatter/html_formatter.rb +337 -0
- data/lib/spec/runner/formatter/nested_text_formatter.rb +65 -0
- data/lib/spec/runner/formatter/profile_formatter.rb +51 -0
- data/lib/spec/runner/formatter/progress_bar_formatter.rb +34 -0
- data/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
- data/lib/spec/runner/formatter/specdoc_formatter.rb +39 -0
- data/lib/spec/runner/formatter/story/html_formatter.rb +174 -0
- data/lib/spec/runner/formatter/story/plain_text_formatter.rb +194 -0
- data/lib/spec/runner/formatter/story/progress_bar_formatter.rb +42 -0
- data/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
- data/lib/spec/runner/heckle_runner.rb +72 -0
- data/lib/spec/runner/heckle_runner_unsupported.rb +10 -0
- data/lib/spec/runner/option_parser.rb +205 -0
- data/lib/spec/runner/options.rb +320 -0
- data/lib/spec/runner/reporter.rb +167 -0
- data/lib/spec/runner/spec_parser.rb +71 -0
- data/lib/spec/runner.rb +213 -0
- data/lib/spec/story/extensions/main.rb +86 -0
- data/lib/spec/story/extensions/regexp.rb +9 -0
- data/lib/spec/story/extensions/string.rb +9 -0
- data/lib/spec/story/extensions.rb +3 -0
- data/lib/spec/story/given_scenario.rb +14 -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 +54 -0
- data/lib/spec/story/runner/story_mediator.rb +137 -0
- data/lib/spec/story/runner/story_parser.rb +247 -0
- data/lib/spec/story/runner/story_runner.rb +70 -0
- data/lib/spec/story/runner.rb +59 -0
- data/lib/spec/story/scenario.rb +14 -0
- data/lib/spec/story/step.rb +70 -0
- data/lib/spec/story/step_group.rb +89 -0
- data/lib/spec/story/step_mother.rb +38 -0
- data/lib/spec/story/story.rb +39 -0
- data/lib/spec/story/world.rb +128 -0
- data/lib/spec/story.rb +10 -0
- data/lib/spec/version.rb +13 -0
- data/lib/spec.rb +32 -0
- data/plugins/mock_frameworks/flexmock.rb +23 -0
- data/plugins/mock_frameworks/mocha.rb +19 -0
- data/plugins/mock_frameworks/rr.rb +21 -0
- data/plugins/mock_frameworks/rspec.rb +20 -0
- data/rake_tasks/examples.rake +7 -0
- data/rake_tasks/examples_with_rcov.rake +9 -0
- data/rake_tasks/failing_examples_with_html.rake +9 -0
- data/rake_tasks/verify_rcov.rake +7 -0
- data/rspec.gemspec +42 -0
- data/spec/README.jruby +15 -0
- data/spec/autotest/autotest_helper.rb +6 -0
- data/spec/autotest/autotest_matchers.rb +47 -0
- data/spec/autotest/discover_spec.rb +19 -0
- data/spec/autotest/rspec_spec.rb +150 -0
- data/spec/rspec_suite.rb +6 -0
- data/spec/ruby_forker.rb +13 -0
- data/spec/spec/adapters/ruby_engine_spec.rb +16 -0
- data/spec/spec/example/configuration_spec.rb +296 -0
- data/spec/spec/example/example_group_class_definition_spec.rb +48 -0
- data/spec/spec/example/example_group_factory_spec.rb +165 -0
- data/spec/spec/example/example_group_methods_spec.rb +584 -0
- data/spec/spec/example/example_group_spec.rb +683 -0
- data/spec/spec/example/example_matcher_spec.rb +96 -0
- data/spec/spec/example/example_methods_spec.rb +169 -0
- data/spec/spec/example/example_runner_spec.rb +194 -0
- data/spec/spec/example/nested_example_group_spec.rb +71 -0
- data/spec/spec/example/pending_module_spec.rb +145 -0
- data/spec/spec/example/predicate_matcher_spec.rb +21 -0
- data/spec/spec/example/shared_example_group_spec.rb +281 -0
- data/spec/spec/example/subclassing_example_group_spec.rb +25 -0
- data/spec/spec/expectations/differs/default_spec.rb +127 -0
- data/spec/spec/expectations/extensions/object_spec.rb +95 -0
- data/spec/spec/expectations/fail_with_spec.rb +71 -0
- data/spec/spec/extensions/main_spec.rb +71 -0
- data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +10 -0
- data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +10 -0
- data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +10 -0
- data/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +13 -0
- data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +10 -0
- data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +10 -0
- data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +10 -0
- data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +38 -0
- data/spec/spec/interop/test/unit/spec_spec.rb +52 -0
- data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +14 -0
- data/spec/spec/interop/test/unit/testcase_spec.rb +49 -0
- data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
- data/spec/spec/matchers/be_close_spec.rb +39 -0
- data/spec/spec/matchers/be_spec.rb +248 -0
- data/spec/spec/matchers/change_spec.rb +329 -0
- data/spec/spec/matchers/description_generation_spec.rb +153 -0
- data/spec/spec/matchers/eql_spec.rb +28 -0
- data/spec/spec/matchers/equal_spec.rb +28 -0
- data/spec/spec/matchers/exist_spec.rb +57 -0
- data/spec/spec/matchers/handler_spec.rb +150 -0
- data/spec/spec/matchers/has_spec.rb +63 -0
- data/spec/spec/matchers/have_spec.rb +394 -0
- data/spec/spec/matchers/include_spec.rb +64 -0
- data/spec/spec/matchers/match_spec.rb +37 -0
- data/spec/spec/matchers/matcher_methods_spec.rb +78 -0
- data/spec/spec/matchers/mock_constraint_matchers_spec.rb +24 -0
- data/spec/spec/matchers/operator_matcher_spec.rb +191 -0
- data/spec/spec/matchers/raise_error_spec.rb +315 -0
- data/spec/spec/matchers/respond_to_spec.rb +54 -0
- data/spec/spec/matchers/satisfy_spec.rb +36 -0
- data/spec/spec/matchers/simple_matcher_spec.rb +93 -0
- data/spec/spec/matchers/throw_symbol_spec.rb +54 -0
- data/spec/spec/mocks/any_number_of_times_spec.rb +36 -0
- data/spec/spec/mocks/argument_expectation_spec.rb +23 -0
- data/spec/spec/mocks/at_least_spec.rb +97 -0
- data/spec/spec/mocks/at_most_spec.rb +93 -0
- data/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
- data/spec/spec/mocks/bug_report_10263_spec.rb +24 -0
- data/spec/spec/mocks/bug_report_11545_spec.rb +33 -0
- data/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
- data/spec/spec/mocks/bug_report_496.rb +17 -0
- data/spec/spec/mocks/bug_report_7611_spec.rb +19 -0
- data/spec/spec/mocks/bug_report_7805_spec.rb +22 -0
- data/spec/spec/mocks/bug_report_8165_spec.rb +31 -0
- data/spec/spec/mocks/bug_report_8302_spec.rb +26 -0
- data/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +95 -0
- data/spec/spec/mocks/hash_including_matcher_spec.rb +53 -0
- data/spec/spec/mocks/mock_ordering_spec.rb +84 -0
- data/spec/spec/mocks/mock_space_spec.rb +54 -0
- data/spec/spec/mocks/mock_spec.rb +555 -0
- data/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
- data/spec/spec/mocks/nil_expectation_warning_spec.rb +53 -0
- data/spec/spec/mocks/null_object_mock_spec.rb +54 -0
- data/spec/spec/mocks/once_counts_spec.rb +53 -0
- data/spec/spec/mocks/options_hash_spec.rb +35 -0
- data/spec/spec/mocks/partial_mock_spec.rb +149 -0
- data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +66 -0
- data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +130 -0
- data/spec/spec/mocks/precise_counts_spec.rb +52 -0
- data/spec/spec/mocks/record_messages_spec.rb +26 -0
- data/spec/spec/mocks/stub_spec.rb +188 -0
- data/spec/spec/mocks/twice_counts_spec.rb +67 -0
- data/spec/spec/package/bin_spec_spec.rb +22 -0
- data/spec/spec/runner/class_and_argument_parser_spec.rb +23 -0
- data/spec/spec/runner/command_line_spec.rb +141 -0
- data/spec/spec/runner/drb_command_line_spec.rb +97 -0
- data/spec/spec/runner/empty_file.txt +0 -0
- data/spec/spec/runner/examples.txt +2 -0
- data/spec/spec/runner/failed.txt +3 -0
- data/spec/spec/runner/formatter/base_formatter_spec.rb +112 -0
- data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +45 -0
- data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +33 -0
- data/spec/spec/runner/formatter/html_formatted-1.8.4.html +365 -0
- data/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +387 -0
- data/spec/spec/runner/formatter/html_formatted-1.8.5.html +371 -0
- data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +381 -0
- data/spec/spec/runner/formatter/html_formatted-1.8.6.html +370 -0
- data/spec/spec/runner/formatter/html_formatter_spec.rb +61 -0
- data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +318 -0
- data/spec/spec/runner/formatter/profile_formatter_spec.rb +65 -0
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +155 -0
- data/spec/spec/runner/formatter/snippet_extractor_spec.rb +18 -0
- data/spec/spec/runner/formatter/spec_mate_formatter_spec.rb +103 -0
- data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +159 -0
- data/spec/spec/runner/formatter/story/html_formatter_spec.rb +135 -0
- data/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +600 -0
- data/spec/spec/runner/formatter/story/progress_bar_formatter_spec.rb +82 -0
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.4.html +365 -0
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +370 -0
- data/spec/spec/runner/heckle_runner_spec.rb +78 -0
- data/spec/spec/runner/heckler_spec.rb +13 -0
- data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +45 -0
- data/spec/spec/runner/option_parser_spec.rb +421 -0
- data/spec/spec/runner/options_spec.rb +450 -0
- 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 +62 -0
- data/spec/spec/runner/reporter_spec.rb +238 -0
- data/spec/spec/runner/resources/a_bar.rb +0 -0
- data/spec/spec/runner/resources/a_foo.rb +0 -0
- data/spec/spec/runner/resources/a_spec.rb +1 -0
- data/spec/spec/runner/spec.opts +2 -0
- data/spec/spec/runner/spec_drb.opts +1 -0
- data/spec/spec/runner/spec_parser/spec_parser_fixture.rb +70 -0
- data/spec/spec/runner/spec_parser_spec.rb +85 -0
- data/spec/spec/runner/spec_spaced.opts +2 -0
- data/spec/spec/runner_spec.rb +11 -0
- data/spec/spec/spec_classes.rb +133 -0
- 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 +90 -0
- data/spec/spec/story/runner/scenario_collector_spec.rb +27 -0
- data/spec/spec/story/runner/scenario_runner_spec.rb +214 -0
- data/spec/spec/story/runner/story_mediator_spec.rb +143 -0
- data/spec/spec/story/runner/story_parser_spec.rb +401 -0
- data/spec/spec/story/runner/story_runner_spec.rb +294 -0
- data/spec/spec/story/runner_spec.rb +93 -0
- data/spec/spec/story/scenario_spec.rb +18 -0
- data/spec/spec/story/step_group_spec.rb +157 -0
- data/spec/spec/story/step_mother_spec.rb +84 -0
- data/spec/spec/story/step_spec.rb +272 -0
- data/spec/spec/story/story_helper.rb +2 -0
- data/spec/spec/story/story_spec.rb +84 -0
- data/spec/spec/story/world_spec.rb +423 -0
- data/spec/spec.opts +6 -0
- data/spec/spec_helper.rb +77 -0
- data/stories/all.rb +5 -0
- data/stories/configuration/before_blocks.story +21 -0
- data/stories/configuration/stories.rb +7 -0
- data/stories/example_groups/autogenerated_docstrings +45 -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 +25 -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/mock_framework_integration/stories.rb +7 -0
- data/stories/mock_framework_integration/use_flexmock.story +9 -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/before_blocks_example.rb +32 -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/spec/spec_with_flexmock.rb +18 -0
- data/stories/resources/steps/running_rspec.rb +50 -0
- data/stories/resources/stories/failing_story.rb +15 -0
- data/stories/resources/test/spec_and_test_together.rb +57 -0
- data/stories/resources/test/test_case_with_should_methods.rb +30 -0
- data/stories/stories/multiline_steps.story +23 -0
- data/stories/stories/steps/multiline_steps.rb +13 -0
- data/stories/stories/stories.rb +6 -0
- data/story_server/prototype/javascripts/builder.js +136 -0
- data/story_server/prototype/javascripts/controls.js +972 -0
- data/story_server/prototype/javascripts/dragdrop.js +976 -0
- data/story_server/prototype/javascripts/effects.js +1117 -0
- data/story_server/prototype/javascripts/prototype.js +4140 -0
- data/story_server/prototype/javascripts/rspec.js +149 -0
- data/story_server/prototype/javascripts/scriptaculous.js +58 -0
- data/story_server/prototype/javascripts/slider.js +276 -0
- data/story_server/prototype/javascripts/sound.js +55 -0
- data/story_server/prototype/javascripts/unittest.js +568 -0
- data/story_server/prototype/lib/server.rb +24 -0
- data/story_server/prototype/stories.html +176 -0
- data/story_server/prototype/stylesheets/rspec.css +136 -0
- data/story_server/prototype/stylesheets/test.css +90 -0
- metadata +495 -0
@@ -0,0 +1,584 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
+
|
3
|
+
module Spec
|
4
|
+
module Example
|
5
|
+
describe 'ExampleGroupMethods' do
|
6
|
+
with_sandboxed_options do
|
7
|
+
attr_reader :example_group, :result, :reporter
|
8
|
+
before(:each) do
|
9
|
+
# See http://rspec.lighthouseapp.com/projects/5645-rspec/tickets/525-arity-changed-on-partial-mocks#ticket-525-2
|
10
|
+
method_with_three_args = lambda { |arg1, arg2, arg3| }
|
11
|
+
options.formatters << mock("formatter", :null_object => true, :example_pending => method_with_three_args)
|
12
|
+
options.backtrace_tweaker = mock("backtrace_tweaker", :null_object => true)
|
13
|
+
@reporter = FakeReporter.new(@options)
|
14
|
+
options.reporter = reporter
|
15
|
+
@example_group = Class.new(ExampleGroup) do
|
16
|
+
describe("ExampleGroup")
|
17
|
+
it "does nothing"
|
18
|
+
end
|
19
|
+
class << example_group
|
20
|
+
public :include
|
21
|
+
end
|
22
|
+
@result = nil
|
23
|
+
end
|
24
|
+
|
25
|
+
after(:each) do
|
26
|
+
ExampleGroup.reset
|
27
|
+
end
|
28
|
+
|
29
|
+
["describe","context"].each do |method|
|
30
|
+
describe "##{method}" do
|
31
|
+
describe "when creating an ExampleGroup" do
|
32
|
+
attr_reader :child_example_group
|
33
|
+
before do
|
34
|
+
@child_example_group = @example_group.send method, "Another ExampleGroup" do
|
35
|
+
it "should pass" do
|
36
|
+
true.should be_true
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should create a subclass of the ExampleGroup when passed a block" do
|
42
|
+
child_example_group.superclass.should == @example_group
|
43
|
+
@options.example_groups.should include(child_example_group)
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should not inherit examples" do
|
47
|
+
child_example_group.examples.length.should == 1
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe "when creating a SharedExampleGroup" do
|
52
|
+
attr_reader :name, :shared_example_group
|
53
|
+
before do
|
54
|
+
@name = "A Shared ExampleGroup"
|
55
|
+
@shared_example_group = @example_group.send method, name, :shared => true do
|
56
|
+
it "should pass" do
|
57
|
+
true.should be_true
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
after do
|
63
|
+
SharedExampleGroup.shared_example_groups.delete_if do |registered_shared_example_group|
|
64
|
+
registered_shared_example_group == shared_example_group
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should create a SharedExampleGroup" do
|
69
|
+
SharedExampleGroup.find_shared_example_group(name).should == shared_example_group
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
describe "#it" do
|
77
|
+
it "should should create an example instance" do
|
78
|
+
lambda {
|
79
|
+
@example_group.it("")
|
80
|
+
}.should change { @example_group.examples.length }.by(1)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
describe "#xit and #xspecify" do
|
85
|
+
before(:each) do
|
86
|
+
Kernel.stub!(:warn)
|
87
|
+
end
|
88
|
+
|
89
|
+
it "should NOT create an example instance" do
|
90
|
+
lambda {
|
91
|
+
@example_group.xit("")
|
92
|
+
}.should_not change(@example_group.examples, :length)
|
93
|
+
|
94
|
+
lambda {
|
95
|
+
@example_group.xspecify("")
|
96
|
+
}.should_not change(@example_group.examples, :length)
|
97
|
+
end
|
98
|
+
|
99
|
+
it "should warn that it is disabled" do
|
100
|
+
Kernel.should_receive(:warn).with("Example disabled: foo").twice
|
101
|
+
@example_group.xit("foo")
|
102
|
+
@example_group.xspecify("foo")
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
describe "#examples" do
|
107
|
+
it "should have Examples" do
|
108
|
+
example_group = Class.new(ExampleGroup) do
|
109
|
+
describe('example')
|
110
|
+
it "should pass" do
|
111
|
+
1.should == 1
|
112
|
+
end
|
113
|
+
end
|
114
|
+
example_group.examples.length.should == 1
|
115
|
+
example_group.examples.first.description.should == "should pass"
|
116
|
+
end
|
117
|
+
|
118
|
+
it "should not include methods that begin with test (only when TU interop is loaded)" do
|
119
|
+
example_group = Class.new(ExampleGroup) do
|
120
|
+
describe('example')
|
121
|
+
def test_any_args(*args)
|
122
|
+
true.should be_true
|
123
|
+
end
|
124
|
+
def test_something
|
125
|
+
1.should == 1
|
126
|
+
end
|
127
|
+
def test
|
128
|
+
raise "This is not a real test"
|
129
|
+
end
|
130
|
+
def testify
|
131
|
+
raise "This is not a real test"
|
132
|
+
end
|
133
|
+
def should_something
|
134
|
+
# forces the run
|
135
|
+
end
|
136
|
+
end
|
137
|
+
example_group.examples.length.should == 1
|
138
|
+
example_group.run.should be_true
|
139
|
+
end
|
140
|
+
|
141
|
+
it "should include methods that begin with should and has an arity of 0 in suite" do
|
142
|
+
example_group = Class.new(ExampleGroup) do
|
143
|
+
describe('example')
|
144
|
+
def shouldCamelCase
|
145
|
+
true.should be_true
|
146
|
+
end
|
147
|
+
def should_any_args(*args)
|
148
|
+
true.should be_true
|
149
|
+
end
|
150
|
+
def should_something
|
151
|
+
1.should == 1
|
152
|
+
end
|
153
|
+
def should_not_something
|
154
|
+
1.should_not == 2
|
155
|
+
end
|
156
|
+
def should
|
157
|
+
raise "This is not a real example"
|
158
|
+
end
|
159
|
+
def should_not
|
160
|
+
raise "This is not a real example"
|
161
|
+
end
|
162
|
+
end
|
163
|
+
example_group = example_group.dup
|
164
|
+
example_group.examples.length.should == 4
|
165
|
+
descriptions = example_group.examples.collect {|example| example.description}.sort
|
166
|
+
descriptions.should include("shouldCamelCase")
|
167
|
+
descriptions.should include("should_any_args")
|
168
|
+
descriptions.should include("should_something")
|
169
|
+
descriptions.should include("should_not_something")
|
170
|
+
descriptions.should_not include("should")
|
171
|
+
descriptions.should_not include("should_not")
|
172
|
+
end
|
173
|
+
|
174
|
+
it "should not include methods that begin with test_ and has an arity > 0 in suite" do
|
175
|
+
example_group = Class.new(ExampleGroup) do
|
176
|
+
describe('example')
|
177
|
+
def test_invalid(foo)
|
178
|
+
1.should == 1
|
179
|
+
end
|
180
|
+
def testInvalidCamelCase(foo)
|
181
|
+
1.should == 1
|
182
|
+
end
|
183
|
+
end
|
184
|
+
example_group.examples.length.should == 0
|
185
|
+
end
|
186
|
+
|
187
|
+
it "should not include methods that begin with should_ and has an arity > 0 in suite" do
|
188
|
+
example_group = Class.new(ExampleGroup) do
|
189
|
+
describe('example')
|
190
|
+
def should_invalid(foo)
|
191
|
+
1.should == 2
|
192
|
+
end
|
193
|
+
def shouldInvalidCamelCase(foo)
|
194
|
+
1.should == 3
|
195
|
+
end
|
196
|
+
def should_not_invalid(foo)
|
197
|
+
1.should == 4
|
198
|
+
end
|
199
|
+
def should_valid
|
200
|
+
1.should == 1
|
201
|
+
end
|
202
|
+
end
|
203
|
+
example_group.examples.length.should == 1
|
204
|
+
example_group.run.should be_true
|
205
|
+
end
|
206
|
+
|
207
|
+
it "should run should_methods" do
|
208
|
+
example_group = Class.new(ExampleGroup) do
|
209
|
+
def should_valid
|
210
|
+
1.should == 2
|
211
|
+
end
|
212
|
+
end
|
213
|
+
example_group.examples.length.should == 1
|
214
|
+
example_group.run.should be_false
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
218
|
+
describe "#set_description" do
|
219
|
+
attr_reader :example_group
|
220
|
+
before do
|
221
|
+
class << example_group
|
222
|
+
public :set_description
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
226
|
+
describe "#set_description(String)" do
|
227
|
+
before(:each) do
|
228
|
+
example_group.set_description("abc")
|
229
|
+
end
|
230
|
+
|
231
|
+
specify ".description should return the String passed into .set_description" do
|
232
|
+
example_group.description.should == "abc"
|
233
|
+
end
|
234
|
+
|
235
|
+
specify ".described_type should provide nil as its type" do
|
236
|
+
example_group.described_type.should be_nil
|
237
|
+
end
|
238
|
+
end
|
239
|
+
|
240
|
+
describe "#set_description(Type)" do
|
241
|
+
before(:each) do
|
242
|
+
example_group.set_description(ExampleGroup)
|
243
|
+
end
|
244
|
+
|
245
|
+
specify ".description should return a String representation of that type (fully qualified) as its name" do
|
246
|
+
example_group.description.should == "Spec::Example::ExampleGroup"
|
247
|
+
end
|
248
|
+
|
249
|
+
specify ".described_type should return the passed in type" do
|
250
|
+
example_group.described_type.should == Spec::Example::ExampleGroup
|
251
|
+
end
|
252
|
+
end
|
253
|
+
|
254
|
+
describe "#set_description(String, Type)" do
|
255
|
+
before(:each) do
|
256
|
+
example_group.set_description("behaving", ExampleGroup)
|
257
|
+
end
|
258
|
+
|
259
|
+
specify ".description should return String then space then Type" do
|
260
|
+
example_group.description.should == "behaving Spec::Example::ExampleGroup"
|
261
|
+
end
|
262
|
+
|
263
|
+
specify ".described_type should return the passed in type" do
|
264
|
+
example_group.described_type.should == Spec::Example::ExampleGroup
|
265
|
+
end
|
266
|
+
end
|
267
|
+
|
268
|
+
describe "#set_description(Type, String not starting with a space)" do
|
269
|
+
before(:each) do
|
270
|
+
example_group.set_description(ExampleGroup, "behaving")
|
271
|
+
end
|
272
|
+
|
273
|
+
specify ".description should return the Type then space then String" do
|
274
|
+
example_group.description.should == "Spec::Example::ExampleGroup behaving"
|
275
|
+
end
|
276
|
+
end
|
277
|
+
|
278
|
+
describe "#set_description(Type, String starting with .)" do
|
279
|
+
before(:each) do
|
280
|
+
example_group.set_description(ExampleGroup, ".behaving")
|
281
|
+
end
|
282
|
+
|
283
|
+
specify ".description should return the Type then String" do
|
284
|
+
example_group.description.should == "Spec::Example::ExampleGroup.behaving"
|
285
|
+
end
|
286
|
+
end
|
287
|
+
|
288
|
+
describe "#set_description(Type, String containing .)" do
|
289
|
+
before(:each) do
|
290
|
+
example_group.set_description(ExampleGroup, "calling a.b")
|
291
|
+
end
|
292
|
+
|
293
|
+
specify ".description should return the Type then space then String" do
|
294
|
+
example_group.description.should == "Spec::Example::ExampleGroup calling a.b"
|
295
|
+
end
|
296
|
+
end
|
297
|
+
|
298
|
+
describe "#set_description(Type, String starting with .)" do
|
299
|
+
before(:each) do
|
300
|
+
example_group.set_description(ExampleGroup, ".behaving")
|
301
|
+
end
|
302
|
+
|
303
|
+
specify "should return the Type then String" do
|
304
|
+
example_group.description.should == "Spec::Example::ExampleGroup.behaving"
|
305
|
+
end
|
306
|
+
end
|
307
|
+
|
308
|
+
describe "#set_description(Type, String containing .)" do
|
309
|
+
before(:each) do
|
310
|
+
example_group.set_description(ExampleGroup, "is #1")
|
311
|
+
end
|
312
|
+
|
313
|
+
specify ".description should return the Type then space then String" do
|
314
|
+
example_group.description.should == "Spec::Example::ExampleGroup is #1"
|
315
|
+
end
|
316
|
+
end
|
317
|
+
|
318
|
+
describe "#set_description(String, Type, String)" do
|
319
|
+
before(:each) do
|
320
|
+
example_group.set_description("A", Hash, "with one entry")
|
321
|
+
end
|
322
|
+
|
323
|
+
specify ".description should return the first String then space then Type then second String" do
|
324
|
+
example_group.description.should == "A Hash with one entry"
|
325
|
+
end
|
326
|
+
end
|
327
|
+
|
328
|
+
describe "#set_description(Hash representing options)" do
|
329
|
+
before(:each) do
|
330
|
+
example_group.set_description(:a => "b", :spec_path => "blah")
|
331
|
+
end
|
332
|
+
|
333
|
+
it ".spec_path should expand the passed in :spec_path option passed into the constructor" do
|
334
|
+
example_group.spec_path.should == File.expand_path("blah")
|
335
|
+
end
|
336
|
+
|
337
|
+
it ".description_options should return all the options passed in" do
|
338
|
+
example_group.description_options.should == {:a => "b", :spec_path => "blah"}
|
339
|
+
end
|
340
|
+
|
341
|
+
end
|
342
|
+
end
|
343
|
+
|
344
|
+
describe "#description" do
|
345
|
+
it "should return the same description instance for each call" do
|
346
|
+
example_group.description.should eql(example_group.description)
|
347
|
+
end
|
348
|
+
|
349
|
+
it "should not add a space when description_text begins with #" do
|
350
|
+
child_example_group = Class.new(example_group) do
|
351
|
+
describe("#foobar", "Does something")
|
352
|
+
end
|
353
|
+
child_example_group.description.should == "ExampleGroup#foobar Does something"
|
354
|
+
end
|
355
|
+
|
356
|
+
it "should not add a space when description_text begins with ." do
|
357
|
+
child_example_group = Class.new(example_group) do
|
358
|
+
describe(".foobar", "Does something")
|
359
|
+
end
|
360
|
+
child_example_group.description.should == "ExampleGroup.foobar Does something"
|
361
|
+
end
|
362
|
+
|
363
|
+
it "should return the class name if nil" do
|
364
|
+
example_group.set_description(nil)
|
365
|
+
example_group.description.should =~ /Class:/
|
366
|
+
end
|
367
|
+
|
368
|
+
it "should return the class name if nil" do
|
369
|
+
example_group.set_description("")
|
370
|
+
example_group.description.should =~ /Class:/
|
371
|
+
end
|
372
|
+
end
|
373
|
+
|
374
|
+
describe "#description_parts" do
|
375
|
+
it "should return an Array of the current class description args" do
|
376
|
+
example_group.description_parts.should == [example_group.description]
|
377
|
+
end
|
378
|
+
|
379
|
+
it "should return an Array of the description args from each class in the hierarchy" do
|
380
|
+
child_example_group = Class.new(example_group)
|
381
|
+
child_example_group.describe("Child", ExampleGroup)
|
382
|
+
child_example_group.description.should_not be_empty
|
383
|
+
|
384
|
+
grand_child_example_group = Class.new(child_example_group)
|
385
|
+
grand_child_example_group.describe("GrandChild", ExampleGroup)
|
386
|
+
grand_child_example_group.description.should_not be_empty
|
387
|
+
|
388
|
+
grand_child_example_group.description_parts.should == [
|
389
|
+
"ExampleGroup",
|
390
|
+
"Child",
|
391
|
+
Spec::Example::ExampleGroup,
|
392
|
+
"GrandChild",
|
393
|
+
Spec::Example::ExampleGroup
|
394
|
+
]
|
395
|
+
end
|
396
|
+
end
|
397
|
+
|
398
|
+
describe "#described_type" do
|
399
|
+
it "should return passed in type" do
|
400
|
+
child_example_group = Class.new(example_group) do
|
401
|
+
describe Object
|
402
|
+
end
|
403
|
+
child_example_group.described_type.should == Object
|
404
|
+
end
|
405
|
+
|
406
|
+
it "should return #described_type of superclass when no passed in type" do
|
407
|
+
parent_example_group = Class.new(ExampleGroup) do
|
408
|
+
describe Object, "#foobar"
|
409
|
+
end
|
410
|
+
child_example_group = Class.new(parent_example_group) do
|
411
|
+
describe "not a type"
|
412
|
+
end
|
413
|
+
child_example_group.described_type.should == Object
|
414
|
+
end
|
415
|
+
end
|
416
|
+
|
417
|
+
describe "#remove_after" do
|
418
|
+
it "should unregister a given after(:each) block" do
|
419
|
+
after_all_ran = false
|
420
|
+
@example_group.it("example") {}
|
421
|
+
proc = Proc.new { after_all_ran = true }
|
422
|
+
ExampleGroup.after(:each, &proc)
|
423
|
+
@example_group.run
|
424
|
+
after_all_ran.should be_true
|
425
|
+
|
426
|
+
after_all_ran = false
|
427
|
+
ExampleGroup.remove_after(:each, &proc)
|
428
|
+
@example_group.run
|
429
|
+
after_all_ran.should be_false
|
430
|
+
end
|
431
|
+
end
|
432
|
+
|
433
|
+
describe "#include" do
|
434
|
+
it "should have accessible class methods from included module" do
|
435
|
+
mod1_method_called = false
|
436
|
+
mod1 = Module.new do
|
437
|
+
extend Spec::MetaClass
|
438
|
+
class_methods = Module.new do
|
439
|
+
define_method :mod1_method do
|
440
|
+
mod1_method_called = true
|
441
|
+
end
|
442
|
+
end
|
443
|
+
|
444
|
+
metaclass.class_eval do
|
445
|
+
define_method(:included) do |receiver|
|
446
|
+
receiver.extend class_methods
|
447
|
+
end
|
448
|
+
end
|
449
|
+
end
|
450
|
+
|
451
|
+
mod2_method_called = false
|
452
|
+
mod2 = Module.new do
|
453
|
+
extend Spec::MetaClass
|
454
|
+
class_methods = Module.new do
|
455
|
+
define_method :mod2_method do
|
456
|
+
mod2_method_called = true
|
457
|
+
end
|
458
|
+
end
|
459
|
+
|
460
|
+
metaclass.class_eval do
|
461
|
+
define_method(:included) do |receiver|
|
462
|
+
receiver.extend class_methods
|
463
|
+
end
|
464
|
+
end
|
465
|
+
end
|
466
|
+
|
467
|
+
@example_group.include mod1, mod2
|
468
|
+
|
469
|
+
@example_group.mod1_method
|
470
|
+
@example_group.mod2_method
|
471
|
+
mod1_method_called.should be_true
|
472
|
+
mod2_method_called.should be_true
|
473
|
+
end
|
474
|
+
end
|
475
|
+
|
476
|
+
describe "#number_of_examples" do
|
477
|
+
it "should count number of specs" do
|
478
|
+
proc do
|
479
|
+
@example_group.it("one") {}
|
480
|
+
@example_group.it("two") {}
|
481
|
+
@example_group.it("three") {}
|
482
|
+
@example_group.it("four") {}
|
483
|
+
end.should change {@example_group.number_of_examples}.by(4)
|
484
|
+
end
|
485
|
+
end
|
486
|
+
|
487
|
+
describe "#class_eval" do
|
488
|
+
it "should allow constants to be defined" do
|
489
|
+
example_group = Class.new(ExampleGroup) do
|
490
|
+
describe('example')
|
491
|
+
FOO = 1
|
492
|
+
it "should reference FOO" do
|
493
|
+
FOO.should == 1
|
494
|
+
end
|
495
|
+
end
|
496
|
+
example_group.run
|
497
|
+
Object.const_defined?(:FOO).should == false
|
498
|
+
end
|
499
|
+
end
|
500
|
+
|
501
|
+
describe '#register' do
|
502
|
+
it "should add ExampleGroup to set of ExampleGroups to be run" do
|
503
|
+
options.example_groups.delete(example_group)
|
504
|
+
options.example_groups.should_not include(example_group)
|
505
|
+
|
506
|
+
example_group.register {}
|
507
|
+
options.example_groups.should include(example_group)
|
508
|
+
end
|
509
|
+
end
|
510
|
+
|
511
|
+
describe '#unregister' do
|
512
|
+
before do
|
513
|
+
options.example_groups.should include(example_group)
|
514
|
+
end
|
515
|
+
|
516
|
+
it "should remove ExampleGroup from set of ExampleGroups to be run" do
|
517
|
+
example_group.unregister
|
518
|
+
options.example_groups.should_not include(example_group)
|
519
|
+
end
|
520
|
+
end
|
521
|
+
|
522
|
+
describe "#registration_backtrace" do
|
523
|
+
it "returns the backtrace of where the ExampleGroup was registered" do
|
524
|
+
example_group = Class.new(ExampleGroup)
|
525
|
+
example_group.registration_backtrace.join("\n").should include("#{__FILE__}:#{__LINE__-1}")
|
526
|
+
end
|
527
|
+
end
|
528
|
+
|
529
|
+
describe "#run" do
|
530
|
+
it "should add_example_group if there are any examples to run" do
|
531
|
+
example_group = Class.new(ExampleGroup) do
|
532
|
+
it "should do something" do end
|
533
|
+
end
|
534
|
+
reporter.should_receive(:add_example_group)
|
535
|
+
example_group.run
|
536
|
+
end
|
537
|
+
|
538
|
+
it "should NOT add_example_group if there are no examples to run" do
|
539
|
+
example_group = Class.new(ExampleGroup) do end
|
540
|
+
reporter.should_not_receive(:add_example_group)
|
541
|
+
example_group.run
|
542
|
+
end
|
543
|
+
end
|
544
|
+
|
545
|
+
describe "#matcher_class=" do
|
546
|
+
it "should call new and matches? on the class used for matching examples" do
|
547
|
+
example_group = Class.new(ExampleGroup) do
|
548
|
+
it "should do something" do end
|
549
|
+
class << self
|
550
|
+
def specified_examples
|
551
|
+
["something"]
|
552
|
+
end
|
553
|
+
def to_s
|
554
|
+
"TestMatcher"
|
555
|
+
end
|
556
|
+
end
|
557
|
+
end
|
558
|
+
|
559
|
+
matcher = mock("matcher")
|
560
|
+
matcher.should_receive(:matches?).with(["something"]).any_number_of_times
|
561
|
+
|
562
|
+
matcher_class = Class.new
|
563
|
+
matcher_class.should_receive(:new).with("TestMatcher", "should do something").twice.and_return(matcher)
|
564
|
+
|
565
|
+
begin
|
566
|
+
ExampleGroupMethods.matcher_class = matcher_class
|
567
|
+
|
568
|
+
example_group.run
|
569
|
+
ensure
|
570
|
+
ExampleGroupMethods.matcher_class = ExampleMatcher
|
571
|
+
end
|
572
|
+
end
|
573
|
+
end
|
574
|
+
|
575
|
+
describe "#options" do
|
576
|
+
it "should expose the options hash" do
|
577
|
+
group = describe("group", :this => 'hash') {}
|
578
|
+
group.options[:this].should == 'hash'
|
579
|
+
end
|
580
|
+
end
|
581
|
+
end
|
582
|
+
end
|
583
|
+
end
|
584
|
+
end
|