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,78 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
+
unless [/mswin/, /java/].detect{|p| p =~ RUBY_PLATFORM}
|
3
|
+
require 'spec/runner/heckle_runner'
|
4
|
+
|
5
|
+
module Foo
|
6
|
+
class Bar
|
7
|
+
def one; end
|
8
|
+
def two; end
|
9
|
+
end
|
10
|
+
|
11
|
+
class Zap
|
12
|
+
def three; end
|
13
|
+
def four; end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "HeckleRunner" do
|
18
|
+
before(:each) do
|
19
|
+
@heckle = mock("heckle", :null_object => true)
|
20
|
+
@heckle_class = mock("heckle_class")
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should heckle all methods in all classes in a module" do
|
24
|
+
@heckle_class.should_receive(:new).with("Foo::Bar", "one", Spec::Runner.options).and_return(@heckle)
|
25
|
+
@heckle_class.should_receive(:new).with("Foo::Bar", "two", Spec::Runner.options).and_return(@heckle)
|
26
|
+
@heckle_class.should_receive(:new).with("Foo::Zap", "three", Spec::Runner.options).and_return(@heckle)
|
27
|
+
@heckle_class.should_receive(:new).with("Foo::Zap", "four", Spec::Runner.options).and_return(@heckle)
|
28
|
+
|
29
|
+
heckle_runner = Spec::Runner::HeckleRunner.new("Foo", @heckle_class)
|
30
|
+
heckle_runner.heckle_with
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should heckle all methods in a class" do
|
34
|
+
@heckle_class.should_receive(:new).with("Foo::Bar", "one", Spec::Runner.options).and_return(@heckle)
|
35
|
+
@heckle_class.should_receive(:new).with("Foo::Bar", "two", Spec::Runner.options).and_return(@heckle)
|
36
|
+
|
37
|
+
heckle_runner = Spec::Runner::HeckleRunner.new("Foo::Bar", @heckle_class)
|
38
|
+
heckle_runner.heckle_with
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should fail heckling when the class is not found" do
|
42
|
+
lambda do
|
43
|
+
heckle_runner = Spec::Runner::HeckleRunner.new("Foo::Bob", @heckle_class)
|
44
|
+
heckle_runner.heckle_with
|
45
|
+
end.should raise_error(StandardError, "Heckling failed - \"Foo::Bob\" is not a known class or module")
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should heckle specific method in a class (with #)" do
|
49
|
+
@heckle_class.should_receive(:new).with("Foo::Bar", "two", Spec::Runner.options).and_return(@heckle)
|
50
|
+
|
51
|
+
heckle_runner = Spec::Runner::HeckleRunner.new("Foo::Bar#two", @heckle_class)
|
52
|
+
heckle_runner.heckle_with
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should heckle specific method in a class (with .)" do
|
56
|
+
@heckle_class.should_receive(:new).with("Foo::Bar", "two", Spec::Runner.options).and_return(@heckle)
|
57
|
+
|
58
|
+
heckle_runner = Spec::Runner::HeckleRunner.new("Foo::Bar.two", @heckle_class)
|
59
|
+
heckle_runner.heckle_with
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
describe "Heckler" do
|
64
|
+
it "should say yes to tests_pass? if specs pass" do
|
65
|
+
options = mock("options", :null_object => true)
|
66
|
+
options.should_receive(:run_examples).and_return(true)
|
67
|
+
heckler = Spec::Runner::Heckler.new("Foo", nil, options)
|
68
|
+
heckler.tests_pass?.should be_true
|
69
|
+
end
|
70
|
+
|
71
|
+
it "should say no to tests_pass? if specs fail" do
|
72
|
+
options = mock("options", :null_object => true)
|
73
|
+
options.should_receive(:run_examples).and_return(false)
|
74
|
+
heckler = Spec::Runner::Heckler.new("Foo", nil, options)
|
75
|
+
heckler.tests_pass?.should be_false
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
+
unless [/mswin/, /java/].detect{|p| p =~ RUBY_PLATFORM}
|
3
|
+
require 'spec/runner/heckle_runner'
|
4
|
+
|
5
|
+
describe "Heckler" do
|
6
|
+
it "should run examples on tests_pass?" do
|
7
|
+
options = Spec::Runner::Options.new(StringIO.new, StringIO.new)
|
8
|
+
options.should_receive(:run_examples).with().and_return(&options.method(:run_examples))
|
9
|
+
heckler = Spec::Runner::Heckler.new('Array', 'push', options)
|
10
|
+
heckler.tests_pass?
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
+
|
3
|
+
module Spec
|
4
|
+
module Runner
|
5
|
+
describe "NoisyBacktraceTweaker" do
|
6
|
+
before(:each) do
|
7
|
+
@error = RuntimeError.new
|
8
|
+
@tweaker = NoisyBacktraceTweaker.new
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should leave anything in lib spec dir" do
|
12
|
+
["expectations", "mocks", "runner", "stubs"].each do |child|
|
13
|
+
@error.set_backtrace(["/lib/spec/#{child}/anything.rb"])
|
14
|
+
@tweaker.tweak_backtrace(@error)
|
15
|
+
@error.backtrace.should_not be_empty
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should leave anything in spec dir" do
|
20
|
+
@error.set_backtrace(["/lib/spec/expectations/anything.rb"])
|
21
|
+
@tweaker.tweak_backtrace(@error)
|
22
|
+
@error.backtrace.should_not be_empty
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should leave bin spec" do
|
26
|
+
@error.set_backtrace(["bin/spec:"])
|
27
|
+
@tweaker.tweak_backtrace(@error)
|
28
|
+
@error.backtrace.should_not be_empty
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should not barf on nil backtrace" do
|
32
|
+
lambda do
|
33
|
+
@tweaker.tweak_backtrace(@error)
|
34
|
+
end.should_not raise_error
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should clean up double slashes" do
|
38
|
+
@error.set_backtrace(["/a//b/c//d.rb"])
|
39
|
+
@tweaker.tweak_backtrace(@error)
|
40
|
+
@error.backtrace.should include("/a/b/c/d.rb")
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,421 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
+
require 'fileutils'
|
3
|
+
|
4
|
+
module Custom
|
5
|
+
class ExampleGroupRunner
|
6
|
+
attr_reader :options, :arg
|
7
|
+
def initialize(options, arg)
|
8
|
+
@options, @arg = options, arg
|
9
|
+
end
|
10
|
+
|
11
|
+
def load_files(files)
|
12
|
+
end
|
13
|
+
|
14
|
+
def run
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe "OptionParser" do
|
20
|
+
before(:each) do
|
21
|
+
@out = StringIO.new
|
22
|
+
@err = StringIO.new
|
23
|
+
@parser = Spec::Runner::OptionParser.new(@err, @out)
|
24
|
+
end
|
25
|
+
|
26
|
+
def parse(args)
|
27
|
+
@parser.parse(args)
|
28
|
+
@parser.options
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should leave the submitted argv alone" do
|
32
|
+
args = ["--pattern", "foo"]
|
33
|
+
@parser.order!(args)
|
34
|
+
args.should == ["--pattern", "foo"]
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should accept files to include" do
|
38
|
+
options = parse(["--pattern", "foo"])
|
39
|
+
options.filename_pattern.should == "foo"
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should accept dry run option" do
|
43
|
+
options = parse(["--dry-run"])
|
44
|
+
options.dry_run.should be_true
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should eval and use custom formatter when none of the builtins" do
|
48
|
+
options = parse(["--format", "Custom::Formatter"])
|
49
|
+
options.formatters[0].class.should be(Custom::Formatter)
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should support formatters with relative and absolute paths, even on windows" do
|
53
|
+
options = parse([
|
54
|
+
"--format", "Custom::Formatter:C:\\foo\\bar",
|
55
|
+
"--format", "Custom::Formatter:foo/bar",
|
56
|
+
"--format", "Custom::Formatter:foo\\bar",
|
57
|
+
"--format", "Custom::Formatter:/foo/bar"
|
58
|
+
])
|
59
|
+
options.formatters[0].where.should eql("C:\\foo\\bar")
|
60
|
+
options.formatters[1].where.should eql("foo/bar")
|
61
|
+
options.formatters[2].where.should eql("foo\\bar")
|
62
|
+
options.formatters[3].where.should eql("/foo/bar")
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should not be verbose by default" do
|
66
|
+
options = parse([])
|
67
|
+
options.verbose.should be_nil
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should not use colour by default" do
|
71
|
+
options = parse([])
|
72
|
+
options.colour.should == false
|
73
|
+
end
|
74
|
+
|
75
|
+
it "should print help to stdout if no args and spec_comand?" do
|
76
|
+
Spec.stub!(:spec_command?).and_return(true)
|
77
|
+
options = parse([])
|
78
|
+
@out.rewind
|
79
|
+
@out.read.should match(/Usage: spec \(FILE\|DIRECTORY\|GLOB\)\+ \[options\]/m)
|
80
|
+
end
|
81
|
+
|
82
|
+
it "should not print help to stdout if no args and NOT spec_command?" do
|
83
|
+
Spec.stub!(:spec_command?).and_return(false)
|
84
|
+
options = parse([])
|
85
|
+
@out.rewind
|
86
|
+
@out.read.should == ""
|
87
|
+
end
|
88
|
+
|
89
|
+
it "should print help to stdout" do
|
90
|
+
options = parse(["--help"])
|
91
|
+
@out.rewind
|
92
|
+
@out.read.should match(/Usage: spec \(FILE\|DIRECTORY\|GLOB\)\+ \[options\]/m)
|
93
|
+
end
|
94
|
+
|
95
|
+
it "should print instructions about how to require missing formatter" do
|
96
|
+
lambda do
|
97
|
+
options = parse(["--format", "Custom::MissingFormatter"])
|
98
|
+
options.formatters
|
99
|
+
end.should raise_error(NameError)
|
100
|
+
@err.string.should match(/Couldn't find formatter class Custom::MissingFormatter/n)
|
101
|
+
end
|
102
|
+
|
103
|
+
it "should print version to stdout" do
|
104
|
+
options = parse(["--version"])
|
105
|
+
@out.rewind
|
106
|
+
@out.read.should match(/rspec \d+\.\d+\.\d+/n)
|
107
|
+
end
|
108
|
+
|
109
|
+
it "should require file when require specified" do
|
110
|
+
lambda do
|
111
|
+
parse(["--require", "whatever"])
|
112
|
+
end.should raise_error(LoadError)
|
113
|
+
end
|
114
|
+
|
115
|
+
it "should support c option" do
|
116
|
+
options = parse(["-c"])
|
117
|
+
options.colour.should be_true
|
118
|
+
end
|
119
|
+
|
120
|
+
it "should support queens colour option" do
|
121
|
+
options = parse(["--colour"])
|
122
|
+
options.colour.should be_true
|
123
|
+
end
|
124
|
+
|
125
|
+
it "should support us color option" do
|
126
|
+
options = parse(["--color"])
|
127
|
+
options.colour.should be_true
|
128
|
+
end
|
129
|
+
|
130
|
+
it "should support single example with -e option" do
|
131
|
+
options = parse(["-e", "something or other"])
|
132
|
+
options.examples.should eql(["something or other"])
|
133
|
+
end
|
134
|
+
|
135
|
+
it "should support single example with -s option (will be removed when autotest supports -e)" do
|
136
|
+
options = parse(["-s", "something or other"])
|
137
|
+
options.examples.should eql(["something or other"])
|
138
|
+
end
|
139
|
+
|
140
|
+
it "should support single example with --example option" do
|
141
|
+
options = parse(["--example", "something or other"])
|
142
|
+
options.examples.should eql(["something or other"])
|
143
|
+
end
|
144
|
+
|
145
|
+
it "should read several example names from file if --example is given an existing file name" do
|
146
|
+
options = parse(["--example", File.dirname(__FILE__) + '/examples.txt'])
|
147
|
+
options.examples.should eql([
|
148
|
+
"Sir, if you were my husband, I would poison your drink.",
|
149
|
+
"Madam, if you were my wife, I would drink it."])
|
150
|
+
end
|
151
|
+
|
152
|
+
it "should read no examples if given an empty file" do
|
153
|
+
options = parse(["--example", File.dirname(__FILE__) + '/empty_file.txt'])
|
154
|
+
options.examples.should eql([])
|
155
|
+
end
|
156
|
+
|
157
|
+
it "should use html formatter when format is h" do
|
158
|
+
options = parse(["--format", "h"])
|
159
|
+
options.formatters[0].class.should equal(Spec::Runner::Formatter::HtmlFormatter)
|
160
|
+
end
|
161
|
+
|
162
|
+
it "should use html story formatter when format is h" do
|
163
|
+
options = parse(["--format", "h"])
|
164
|
+
options.story_formatters[0].class.should equal(Spec::Runner::Formatter::Story::HtmlFormatter)
|
165
|
+
end
|
166
|
+
|
167
|
+
it "should use html formatter when format is html" do
|
168
|
+
options = parse(["--format", "html"])
|
169
|
+
options.formatters[0].class.should equal(Spec::Runner::Formatter::HtmlFormatter)
|
170
|
+
end
|
171
|
+
|
172
|
+
it "should use html story formatter when format is html" do
|
173
|
+
options = parse(["--format", "html"])
|
174
|
+
options.story_formatters[0].class.should equal(Spec::Runner::Formatter::Story::HtmlFormatter)
|
175
|
+
end
|
176
|
+
|
177
|
+
it "should use html formatter with explicit output when format is html:test.html" do
|
178
|
+
FileUtils.rm 'test.html' if File.exist?('test.html')
|
179
|
+
options = parse(["--format", "html:test.html"])
|
180
|
+
options.formatters # creates the file
|
181
|
+
File.should be_exist('test.html')
|
182
|
+
options.formatters[0].class.should equal(Spec::Runner::Formatter::HtmlFormatter)
|
183
|
+
options.formatters[0].close
|
184
|
+
FileUtils.rm 'test.html'
|
185
|
+
end
|
186
|
+
|
187
|
+
it "should use noisy backtrace tweaker with b option" do
|
188
|
+
options = parse(["-b"])
|
189
|
+
options.backtrace_tweaker.should be_instance_of(Spec::Runner::NoisyBacktraceTweaker)
|
190
|
+
end
|
191
|
+
|
192
|
+
it "should use noisy backtrace tweaker with backtrace option" do
|
193
|
+
options = parse(["--backtrace"])
|
194
|
+
options.backtrace_tweaker.should be_instance_of(Spec::Runner::NoisyBacktraceTweaker)
|
195
|
+
end
|
196
|
+
|
197
|
+
it "should use quiet backtrace tweaker by default" do
|
198
|
+
options = parse([])
|
199
|
+
options.backtrace_tweaker.should be_instance_of(Spec::Runner::QuietBacktraceTweaker)
|
200
|
+
end
|
201
|
+
|
202
|
+
it "should use progress bar formatter by default" do
|
203
|
+
options = parse([])
|
204
|
+
options.formatters[0].class.should equal(Spec::Runner::Formatter::ProgressBarFormatter)
|
205
|
+
end
|
206
|
+
|
207
|
+
it "should use specdoc formatter when format is s" do
|
208
|
+
options = parse(["--format", "s"])
|
209
|
+
options.formatters[0].class.should equal(Spec::Runner::Formatter::SpecdocFormatter)
|
210
|
+
end
|
211
|
+
|
212
|
+
it "should use specdoc formatter when format is specdoc" do
|
213
|
+
options = parse(["--format", "specdoc"])
|
214
|
+
options.formatters[0].class.should equal(Spec::Runner::Formatter::SpecdocFormatter)
|
215
|
+
end
|
216
|
+
|
217
|
+
it "should use nested text formatter when format is s" do
|
218
|
+
options = parse(["--format", "n"])
|
219
|
+
options.formatters[0].class.should equal(Spec::Runner::Formatter::NestedTextFormatter)
|
220
|
+
end
|
221
|
+
|
222
|
+
it "should use nested text formatter when format is nested" do
|
223
|
+
options = parse(["--format", "nested"])
|
224
|
+
options.formatters[0].class.should equal(Spec::Runner::Formatter::NestedTextFormatter)
|
225
|
+
end
|
226
|
+
|
227
|
+
it "should support diff option when format is not specified" do
|
228
|
+
options = parse(["--diff"])
|
229
|
+
options.diff_format.should == :unified
|
230
|
+
end
|
231
|
+
|
232
|
+
it "should use unified diff format option when format is unified" do
|
233
|
+
options = parse(["--diff", "unified"])
|
234
|
+
options.diff_format.should == :unified
|
235
|
+
options.differ_class.should equal(Spec::Expectations::Differs::Default)
|
236
|
+
end
|
237
|
+
|
238
|
+
it "should use context diff format option when format is context" do
|
239
|
+
options = parse(["--diff", "context"])
|
240
|
+
options.diff_format.should == :context
|
241
|
+
options.differ_class.should == Spec::Expectations::Differs::Default
|
242
|
+
end
|
243
|
+
|
244
|
+
it "should use custom diff format option when format is a custom format" do
|
245
|
+
Spec::Expectations.differ.should_not be_instance_of(Custom::Differ)
|
246
|
+
|
247
|
+
options = parse(["--diff", "Custom::Differ"])
|
248
|
+
options.parse_diff "Custom::Differ"
|
249
|
+
options.diff_format.should == :custom
|
250
|
+
options.differ_class.should == Custom::Differ
|
251
|
+
Spec::Expectations.differ.should be_instance_of(Custom::Differ)
|
252
|
+
end
|
253
|
+
|
254
|
+
it "should print instructions about how to fix missing differ" do
|
255
|
+
lambda { parse(["--diff", "Custom::MissingFormatter"]) }.should raise_error(NameError)
|
256
|
+
@err.string.should match(/Couldn't find differ class Custom::MissingFormatter/n)
|
257
|
+
end
|
258
|
+
|
259
|
+
describe "when attempting a focussed spec" do
|
260
|
+
attr_reader :file, :dir
|
261
|
+
before(:each) do
|
262
|
+
@original_rspec_options = Spec::Runner.options
|
263
|
+
@file = "#{File.dirname(__FILE__)}/spec_parser/spec_parser_fixture.rb"
|
264
|
+
@dir = File.dirname(file)
|
265
|
+
end
|
266
|
+
|
267
|
+
after(:each) do
|
268
|
+
Spec::Runner.use @original_rspec_options
|
269
|
+
end
|
270
|
+
|
271
|
+
def parse(args)
|
272
|
+
options = super
|
273
|
+
Spec::Runner.use options
|
274
|
+
options.filename_pattern = "*_fixture.rb"
|
275
|
+
options
|
276
|
+
end
|
277
|
+
|
278
|
+
it "should support --line to identify spec" do
|
279
|
+
options = parse([file, "--line", "13"])
|
280
|
+
options.line_number.should == 13
|
281
|
+
options.examples.should be_empty
|
282
|
+
options.run_examples
|
283
|
+
options.examples.should eql(["d"])
|
284
|
+
end
|
285
|
+
|
286
|
+
it "should fail with error message if file is dir along with --line" do
|
287
|
+
options = parse([dir, "--line", "169"])
|
288
|
+
options.line_number.should == 169
|
289
|
+
options.run_examples
|
290
|
+
@err.string.should match(/You must specify one file, not a directory when using the --line option/n)
|
291
|
+
end
|
292
|
+
|
293
|
+
it "should fail with error message if file does not exist along with --line" do
|
294
|
+
options = parse(["some file", "--line", "169"])
|
295
|
+
proc do
|
296
|
+
options.run_examples
|
297
|
+
end.should raise_error
|
298
|
+
end
|
299
|
+
|
300
|
+
it "should fail with error message if more than one files are specified along with --line" do
|
301
|
+
options = parse([file, file, "--line", "169"])
|
302
|
+
options.run_examples
|
303
|
+
@err.string.should match(/Only one file can be specified when using the --line option/n)
|
304
|
+
end
|
305
|
+
|
306
|
+
it "should fail with error message if --example and --line are used simultaneously" do
|
307
|
+
options = parse([file, "--example", "some example", "--line", "169"])
|
308
|
+
options.run_examples
|
309
|
+
@err.string.should match(/You cannot use both --line and --example/n)
|
310
|
+
end
|
311
|
+
end
|
312
|
+
|
313
|
+
if [/mswin/, /java/].detect{|p| p =~ RUBY_PLATFORM}
|
314
|
+
it "should barf when --heckle is specified (and platform is windows)" do
|
315
|
+
lambda do
|
316
|
+
options = parse(["--heckle", "Spec"])
|
317
|
+
end.should raise_error(StandardError, "Heckle not supported on Windows")
|
318
|
+
end
|
319
|
+
else
|
320
|
+
it "should heckle when --heckle is specified (and platform is not windows)" do
|
321
|
+
options = parse(["--heckle", "Spec"])
|
322
|
+
options.heckle_runner.should be_instance_of(Spec::Runner::HeckleRunner)
|
323
|
+
end
|
324
|
+
end
|
325
|
+
|
326
|
+
it "should read options from file when --options is specified" do
|
327
|
+
options = parse(["--options", File.dirname(__FILE__) + "/spec.opts"])
|
328
|
+
options.diff_format.should_not be_nil
|
329
|
+
options.colour.should be_true
|
330
|
+
end
|
331
|
+
|
332
|
+
it "should default the formatter to ProgressBarFormatter when using options file" do
|
333
|
+
options = parse(["--options", File.dirname(__FILE__) + "/spec.opts"])
|
334
|
+
options.formatters.first.should be_instance_of(::Spec::Runner::Formatter::ProgressBarFormatter)
|
335
|
+
end
|
336
|
+
|
337
|
+
it "should run parse drb after parsing options" do
|
338
|
+
@parser.stub!(:parse_drb)
|
339
|
+
@parser.should_receive(:parse_drb).with(["--drb"]).and_return(true)
|
340
|
+
options = parse(["--options", File.dirname(__FILE__) + "/spec_drb.opts"])
|
341
|
+
end
|
342
|
+
|
343
|
+
it "should read spaced and multi-line options from file when --options is specified" do
|
344
|
+
options = parse(["--options", File.dirname(__FILE__) + "/spec_spaced.opts"])
|
345
|
+
options.diff_format.should_not be_nil
|
346
|
+
options.colour.should be_true
|
347
|
+
options.formatters.first.should be_instance_of(::Spec::Runner::Formatter::SpecdocFormatter)
|
348
|
+
end
|
349
|
+
|
350
|
+
it "should save config to file when --generate-options is specified" do
|
351
|
+
FileUtils.rm 'test.spec.opts' if File.exist?('test.spec.opts')
|
352
|
+
options = parse(["--colour", "--generate-options", "test.spec.opts", "--diff"])
|
353
|
+
IO.read('test.spec.opts').should == "--colour\n--diff\n"
|
354
|
+
FileUtils.rm 'test.spec.opts'
|
355
|
+
end
|
356
|
+
|
357
|
+
it "should save config to file when -G is specified" do
|
358
|
+
FileUtils.rm 'test.spec.opts' if File.exist?('test.spec.opts')
|
359
|
+
options = parse(["--colour", "-G", "test.spec.opts", "--diff"])
|
360
|
+
IO.read('test.spec.opts').should == "--colour\n--diff\n"
|
361
|
+
FileUtils.rm 'test.spec.opts'
|
362
|
+
end
|
363
|
+
|
364
|
+
it "when --drb is specified, calls DrbCommandLine all of the other ARGV arguments" do
|
365
|
+
options = Spec::Runner::OptionParser.parse([
|
366
|
+
"some/spec.rb", "--diff", "--colour"
|
367
|
+
], @err, @out)
|
368
|
+
Spec::Runner::DrbCommandLine.should_receive(:run).and_return do |options|
|
369
|
+
options.argv.should == ["some/spec.rb", "--diff", "--colour"]
|
370
|
+
end
|
371
|
+
parse(["some/spec.rb", "--diff", "--drb", "--colour"])
|
372
|
+
end
|
373
|
+
|
374
|
+
it "should reverse spec order when --reverse is specified" do
|
375
|
+
options = parse(["some/spec.rb", "--reverse"])
|
376
|
+
end
|
377
|
+
|
378
|
+
it "should set an mtime comparator when --loadby mtime" do
|
379
|
+
options = parse(["--loadby", 'mtime'])
|
380
|
+
runner = Spec::Runner::ExampleGroupRunner.new(options)
|
381
|
+
Spec::Runner::ExampleGroupRunner.should_receive(:new).
|
382
|
+
with(options).
|
383
|
+
and_return(runner)
|
384
|
+
runner.should_receive(:load_files).with(["most_recent_spec.rb", "command_line_spec.rb"])
|
385
|
+
|
386
|
+
Dir.chdir(File.dirname(__FILE__)) do
|
387
|
+
options.files << 'command_line_spec.rb'
|
388
|
+
options.files << 'most_recent_spec.rb'
|
389
|
+
FileUtils.touch "most_recent_spec.rb"
|
390
|
+
options.run_examples
|
391
|
+
FileUtils.rm "most_recent_spec.rb"
|
392
|
+
end
|
393
|
+
end
|
394
|
+
|
395
|
+
it "should use the standard runner by default" do
|
396
|
+
runner = ::Spec::Runner::ExampleGroupRunner.new(@parser.options)
|
397
|
+
::Spec::Runner::ExampleGroupRunner.should_receive(:new).
|
398
|
+
with(@parser.options).
|
399
|
+
and_return(runner)
|
400
|
+
options = parse([])
|
401
|
+
options.run_examples
|
402
|
+
end
|
403
|
+
|
404
|
+
it "should use a custom runner when given" do
|
405
|
+
runner = Custom::ExampleGroupRunner.new(@parser.options, nil)
|
406
|
+
Custom::ExampleGroupRunner.should_receive(:new).
|
407
|
+
with(@parser.options, nil).
|
408
|
+
and_return(runner)
|
409
|
+
options = parse(["--runner", "Custom::ExampleGroupRunner"])
|
410
|
+
options.run_examples
|
411
|
+
end
|
412
|
+
|
413
|
+
it "should use a custom runner with extra options" do
|
414
|
+
runner = Custom::ExampleGroupRunner.new(@parser.options, 'something')
|
415
|
+
Custom::ExampleGroupRunner.should_receive(:new).
|
416
|
+
with(@parser.options, 'something').
|
417
|
+
and_return(runner)
|
418
|
+
options = parse(["--runner", "Custom::ExampleGroupRunner:something"])
|
419
|
+
options.run_examples
|
420
|
+
end
|
421
|
+
end
|