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
data/spec/spec.opts
ADDED
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
require 'stringio'
|
2
|
+
|
3
|
+
dir = File.dirname(__FILE__)
|
4
|
+
lib_path = File.expand_path("#{dir}/../lib")
|
5
|
+
$LOAD_PATH.unshift lib_path unless $LOAD_PATH.include?(lib_path)
|
6
|
+
$_spec_spec = true # Prevents Kernel.exit in various places
|
7
|
+
|
8
|
+
require 'spec'
|
9
|
+
require 'spec/mocks'
|
10
|
+
require 'spec/story'
|
11
|
+
spec_classes_path = File.expand_path("#{dir}/../spec/spec/spec_classes")
|
12
|
+
require spec_classes_path unless $LOAD_PATH.include?(spec_classes_path)
|
13
|
+
require File.dirname(__FILE__) + '/../lib/spec/expectations/differs/default'
|
14
|
+
|
15
|
+
module Spec
|
16
|
+
module Example
|
17
|
+
class NonStandardError < Exception; end
|
18
|
+
end
|
19
|
+
|
20
|
+
module Matchers
|
21
|
+
def fail
|
22
|
+
raise_error(Spec::Expectations::ExpectationNotMetError)
|
23
|
+
end
|
24
|
+
|
25
|
+
def fail_with(message)
|
26
|
+
raise_error(Spec::Expectations::ExpectationNotMetError, message)
|
27
|
+
end
|
28
|
+
|
29
|
+
def exception_from(&block)
|
30
|
+
exception = nil
|
31
|
+
begin
|
32
|
+
yield
|
33
|
+
rescue StandardError => e
|
34
|
+
exception = e
|
35
|
+
end
|
36
|
+
exception
|
37
|
+
end
|
38
|
+
|
39
|
+
def run_with(options)
|
40
|
+
::Spec::Runner::CommandLine.run(options)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def with_sandboxed_options
|
46
|
+
attr_reader :options
|
47
|
+
|
48
|
+
before(:each) do
|
49
|
+
@original_rspec_options = ::Spec::Runner.options
|
50
|
+
::Spec::Runner.use(@options = ::Spec::Runner::Options.new(StringIO.new, StringIO.new))
|
51
|
+
end
|
52
|
+
|
53
|
+
after(:each) do
|
54
|
+
::Spec::Runner.use(@original_rspec_options)
|
55
|
+
end
|
56
|
+
|
57
|
+
yield
|
58
|
+
end
|
59
|
+
|
60
|
+
def with_sandboxed_config
|
61
|
+
attr_reader :config
|
62
|
+
|
63
|
+
before(:each) do
|
64
|
+
@config = ::Spec::Example::Configuration.new
|
65
|
+
@original_configuration = ::Spec::Runner.configuration
|
66
|
+
spec_configuration = @config
|
67
|
+
::Spec::Runner.instance_eval {@configuration = spec_configuration}
|
68
|
+
end
|
69
|
+
|
70
|
+
after(:each) do
|
71
|
+
original_configuration = @original_configuration
|
72
|
+
::Spec::Runner.instance_eval {@configuration = original_configuration}
|
73
|
+
::Spec::Example::ExampleGroupFactory.reset
|
74
|
+
end
|
75
|
+
|
76
|
+
yield
|
77
|
+
end
|
data/stories/all.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
Story: before suite
|
2
|
+
As a developer using rspec
|
3
|
+
I want to define before blocks in the global configuration
|
4
|
+
So that I can define global things globally
|
5
|
+
|
6
|
+
Scenario: running with ruby
|
7
|
+
|
8
|
+
Given the file ../resources/spec/before_blocks_example.rb
|
9
|
+
|
10
|
+
When I run it with the ruby interpreter
|
11
|
+
|
12
|
+
Then the stdout should match "3 examples, 0 failures"
|
13
|
+
|
14
|
+
Scenario: running with spec
|
15
|
+
|
16
|
+
Given the file ../resources/spec/before_blocks_example.rb
|
17
|
+
|
18
|
+
When I run it with the spec script
|
19
|
+
|
20
|
+
Then the stdout should match "3 examples, 0 failures"
|
21
|
+
|
@@ -0,0 +1,45 @@
|
|
1
|
+
Story: autogenerated docstrings
|
2
|
+
|
3
|
+
As an RSpec user
|
4
|
+
I want examples to generate their own names
|
5
|
+
So that I can reduce duplication between example names and example code
|
6
|
+
|
7
|
+
Scenario: run passing examples with ruby
|
8
|
+
Given the file ../../examples/pure/autogenerated_docstrings_example.rb
|
9
|
+
|
10
|
+
When I run it with the ruby interpreter -fs
|
11
|
+
|
12
|
+
Then the stdout should match /should equal 5/
|
13
|
+
And the stdout should match /should be < 5/
|
14
|
+
And the stdout should match /should include "a"/
|
15
|
+
And the stdout should match /should respond to #size/
|
16
|
+
|
17
|
+
Scenario: run failing examples with ruby
|
18
|
+
Given the file ../../failing_examples/failing_autogenerated_docstrings_example.rb
|
19
|
+
|
20
|
+
When I run it with the ruby interpreter -fs
|
21
|
+
|
22
|
+
Then the stdout should match /should equal 2/
|
23
|
+
And the stdout should match /should be > 5/
|
24
|
+
And the stdout should match /should include "b"/
|
25
|
+
And the stdout should match /should not respond to #size/
|
26
|
+
|
27
|
+
Scenario: run passing examples with spec
|
28
|
+
Given the file ../../examples/pure/autogenerated_docstrings_example.rb
|
29
|
+
|
30
|
+
When I run it with the spec script -fs
|
31
|
+
|
32
|
+
Then the stdout should match /should equal 5/
|
33
|
+
And the stdout should match /should be < 5/
|
34
|
+
And the stdout should match /should include "a"/
|
35
|
+
And the stdout should match /should respond to #size/
|
36
|
+
|
37
|
+
Scenario: run failing examples with spec
|
38
|
+
Given the file ../../failing_examples/failing_autogenerated_docstrings_example.rb
|
39
|
+
|
40
|
+
When I run it with the spec script -fs
|
41
|
+
|
42
|
+
Then the stdout should match /should equal 2/
|
43
|
+
And the stdout should match /should be > 5/
|
44
|
+
And the stdout should match /should include "b"/
|
45
|
+
And the stdout should match /should not respond to #size/
|
@@ -0,0 +1,17 @@
|
|
1
|
+
Story: Spec::ExampleGroup with should methods
|
2
|
+
|
3
|
+
As an RSpec adopter accustomed to classes and methods
|
4
|
+
I want to use should_* methods in an ExampleGroup
|
5
|
+
So that I use RSpec with classes and methods that look more like RSpec examples
|
6
|
+
|
7
|
+
Scenario: Run with ruby
|
8
|
+
Given the file spec/example_group_with_should_methods.rb
|
9
|
+
When I run it with the ruby interpreter
|
10
|
+
Then the exit code should be 256
|
11
|
+
And the stdout should match "2 examples, 1 failure"
|
12
|
+
|
13
|
+
Scenario: Run with spec
|
14
|
+
Given the file spec/example_group_with_should_methods.rb
|
15
|
+
When I run it with the spec script
|
16
|
+
Then the exit code should be 256
|
17
|
+
And the stdout should match "2 examples, 1 failure"
|
@@ -0,0 +1,17 @@
|
|
1
|
+
Story: Nested example groups
|
2
|
+
|
3
|
+
As an RSpec user
|
4
|
+
I want to nest examples groups
|
5
|
+
So that I can better organize my examples
|
6
|
+
|
7
|
+
Scenario: Run with ruby
|
8
|
+
Given the file ../../examples/pure/stack_spec_with_nested_example_groups.rb
|
9
|
+
When I run it with the ruby interpreter -fs
|
10
|
+
Then the stdout should match /Stack \(empty\)/
|
11
|
+
And the stdout should match /Stack \(full\)/
|
12
|
+
|
13
|
+
Scenario: Run with ruby
|
14
|
+
Given the file ../../examples/pure/stack_spec_with_nested_example_groups.rb
|
15
|
+
When I run it with the spec script -fs
|
16
|
+
Then the stdout should match /Stack \(empty\)/
|
17
|
+
And the stdout should match /Stack \(full\)/
|
@@ -0,0 +1,25 @@
|
|
1
|
+
Story: Getting correct output
|
2
|
+
|
3
|
+
As an RSpec user
|
4
|
+
I want to see output only once
|
5
|
+
So that I don't get confused
|
6
|
+
|
7
|
+
Scenario: Run with ruby
|
8
|
+
Given the file spec/simple_spec.rb
|
9
|
+
When I run it with the ruby interpreter
|
10
|
+
Then the exit code should be 0
|
11
|
+
And the stdout should not match /\d+ tests, \d+ assertions, \d+ failures, \d+ errors/m
|
12
|
+
And the stdout should match "1 example, 0 failures"
|
13
|
+
|
14
|
+
Scenario: Run with CommandLine object
|
15
|
+
Given the file spec/simple_spec.rb
|
16
|
+
When I run it with the CommandLine object
|
17
|
+
Then the exit code should be 0
|
18
|
+
And the stdout should not match "Loaded suite"
|
19
|
+
And the stdout should not match /\d+ tests, \d+ assertions, \d+ failures, \d+ errors/m
|
20
|
+
And the stdout should match "1 example, 0 failures"
|
21
|
+
|
22
|
+
Scenario: Tweak backtrace
|
23
|
+
Given the file stories/failing_story.rb
|
24
|
+
When I run it with the ruby interpreter
|
25
|
+
Then the stdout should not match /\/lib\/spec\//
|
data/stories/helper.rb
ADDED
@@ -0,0 +1,6 @@
|
|
1
|
+
$LOAD_PATH.unshift File.expand_path("#{File.dirname(__FILE__)}/../lib")
|
2
|
+
require 'spec'
|
3
|
+
require 'tempfile'
|
4
|
+
require File.join(File.dirname(__FILE__), *%w[resources matchers smart_match])
|
5
|
+
require File.join(File.dirname(__FILE__), *%w[resources helpers story_helper])
|
6
|
+
require File.join(File.dirname(__FILE__), *%w[resources steps running_rspec])
|
@@ -0,0 +1,30 @@
|
|
1
|
+
Story: Spec and test together
|
2
|
+
|
3
|
+
As an RSpec adopter with existing Test::Unit tests
|
4
|
+
I want to run a few specs alongside my existing Test::Unit tests
|
5
|
+
So that I can experience a smooth, gradual migration path
|
6
|
+
|
7
|
+
Scenario: Run with ruby
|
8
|
+
Given the file test/spec_and_test_together.rb
|
9
|
+
|
10
|
+
When I run it with the ruby interpreter -fs
|
11
|
+
|
12
|
+
Then the exit code should be 256
|
13
|
+
And the stdout should match "ATest"
|
14
|
+
And the stdout should match "Test::Unit::AssertionFailedError in 'An Example should fail with assert'"
|
15
|
+
And the stdout should match "'An Example should fail with should' FAILED"
|
16
|
+
And the stdout should match "10 examples, 6 failures"
|
17
|
+
And the stdout should match /expected: 40,\s*got: 4/m
|
18
|
+
And the stdout should match /expected: 50,\s*got: 5/m
|
19
|
+
Scenario: Run with spec
|
20
|
+
Given the file test/spec_and_test_together.rb
|
21
|
+
|
22
|
+
When I run it with the spec script -fs
|
23
|
+
|
24
|
+
Then the exit code should be 256
|
25
|
+
Ands the stdout should match "ATest"
|
26
|
+
And the stdout should match "Test::Unit::AssertionFailedError in 'An Example should fail with assert'"
|
27
|
+
And the stdout should match "'An Example should fail with should' FAILED"
|
28
|
+
And the stdout should match "10 examples, 6 failures"
|
29
|
+
And the stdout should match /expected: 40,\s*got: 4/m
|
30
|
+
And the stdout should match /expected: 50,\s*got: 5/m
|
@@ -0,0 +1,17 @@
|
|
1
|
+
Story: Test::Unit::TestCase extended by rspec with should methods
|
2
|
+
|
3
|
+
As an RSpec adopter with existing Test::Unit tests
|
4
|
+
I want to use should_* methods in a Test::Unit::TestCase
|
5
|
+
So that I use RSpec with classes and methods that look more like RSpec examples
|
6
|
+
|
7
|
+
Scenario: Run with ruby
|
8
|
+
Given the file test/test_case_with_should_methods.rb
|
9
|
+
When I run it with the ruby interpreter
|
10
|
+
Then the exit code should be 256
|
11
|
+
And the stdout should match "5 examples, 3 failures"
|
12
|
+
|
13
|
+
Scenario: Run with spec
|
14
|
+
Given the file test/test_case_with_should_methods.rb
|
15
|
+
When I run it with the spec script
|
16
|
+
Then the exit code should be 256
|
17
|
+
And the stdout should match "5 examples, 3 failures"
|
@@ -0,0 +1,9 @@
|
|
1
|
+
Story: Getting correct output with flexmock
|
2
|
+
|
3
|
+
As an RSpec user who prefers flexmock
|
4
|
+
I want to be able to use flexmock without rspec mocks interfering
|
5
|
+
|
6
|
+
Scenario: Mock with flexmock
|
7
|
+
Given the file spec/spec_with_flexmock.rb
|
8
|
+
When I run it with the ruby interpreter
|
9
|
+
Then the exit code should be 0
|
@@ -0,0 +1,9 @@
|
|
1
|
+
$:.push File.join(File.dirname(__FILE__), *%w[.. .. .. lib])
|
2
|
+
require 'spec'
|
3
|
+
|
4
|
+
# Uncommenting next line will break the output story (no output!!)
|
5
|
+
# rspec_options
|
6
|
+
options = Spec::Runner::OptionParser.parse(
|
7
|
+
ARGV, $stderr, $stdout
|
8
|
+
)
|
9
|
+
Spec::Runner::CommandLine.run(options)
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'spec/story'
|
2
|
+
require File.dirname(__FILE__) + '/../../../spec/ruby_forker'
|
3
|
+
|
4
|
+
module StoryHelper
|
5
|
+
include RubyForker
|
6
|
+
|
7
|
+
def spec(args, stderr)
|
8
|
+
ruby("#{File.dirname(__FILE__) + '/../../../bin/spec'} #{args}", stderr)
|
9
|
+
end
|
10
|
+
|
11
|
+
def cmdline(args, stderr)
|
12
|
+
ruby("#{File.dirname(__FILE__) + '/../../resources/helpers/cmdline.rb'} #{args}", stderr)
|
13
|
+
end
|
14
|
+
|
15
|
+
Spec::Story::World.send :include, self
|
16
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Spec
|
2
|
+
module Matchers
|
3
|
+
class SmartMatch
|
4
|
+
def initialize(expected)
|
5
|
+
@expected = expected
|
6
|
+
end
|
7
|
+
|
8
|
+
def matches?(actual)
|
9
|
+
@actual = actual
|
10
|
+
# Satisfy expectation here. Return false or raise an error if it's not met.
|
11
|
+
|
12
|
+
if @expected =~ /^\/.*\/?$/ || @expected =~ /^".*"$/
|
13
|
+
regex_or_string = eval(@expected)
|
14
|
+
if Regexp === regex_or_string
|
15
|
+
(@actual =~ regex_or_string) ? true : false
|
16
|
+
else
|
17
|
+
@actual.index(regex_or_string) != nil
|
18
|
+
end
|
19
|
+
else
|
20
|
+
false
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def failure_message
|
25
|
+
"expected #{@actual.inspect} to smart_match #{@expected.inspect}, but it didn't"
|
26
|
+
end
|
27
|
+
|
28
|
+
def negative_failure_message
|
29
|
+
"expected #{@actual.inspect} not to smart_match #{@expected.inspect}, but it did"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def smart_match(expected)
|
34
|
+
SmartMatch.new(expected)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__), *%w[.. .. .. lib])
|
2
|
+
require 'spec'
|
3
|
+
|
4
|
+
Spec::Runner.configure do |config|
|
5
|
+
config.before(:suite) do
|
6
|
+
$before_suite = "before suite"
|
7
|
+
end
|
8
|
+
config.before(:each) do
|
9
|
+
@before_each = "before each"
|
10
|
+
end
|
11
|
+
config.before(:all) do
|
12
|
+
@before_all = "before all"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "stuff in before blocks" do
|
17
|
+
describe "with :suite" do
|
18
|
+
it "should be available in the example" do
|
19
|
+
$before_suite.should == "before suite"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
describe "with :all" do
|
23
|
+
it "should be available in the example" do
|
24
|
+
@before_all.should == "before all"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
describe "with :each" do
|
28
|
+
it "should be available in the example" do
|
29
|
+
@before_each.should == "before each"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|