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,96 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
+
|
3
|
+
module Spec
|
4
|
+
module Example
|
5
|
+
module ExampleMatcherSpecHelper
|
6
|
+
class MatchDescription
|
7
|
+
def initialize(description)
|
8
|
+
@description = description
|
9
|
+
end
|
10
|
+
|
11
|
+
def matches?(matcher)
|
12
|
+
matcher.matches?(@description)
|
13
|
+
end
|
14
|
+
|
15
|
+
def failure_message
|
16
|
+
"expected matcher.matches?(#{@description.inspect}) to return true, got false"
|
17
|
+
end
|
18
|
+
|
19
|
+
def negative_failure_message
|
20
|
+
"expected matcher.matches?(#{@description.inspect}) to return false, got true"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
def match_description(description)
|
24
|
+
MatchDescription.new(description)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe ExampleMatcher, "#matches?" do
|
29
|
+
include ExampleMatcherSpecHelper
|
30
|
+
|
31
|
+
it "should match correct example_group and example" do
|
32
|
+
matcher = ExampleMatcher.new("example_group", "example")
|
33
|
+
matcher.should match_description("example_group example")
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should not match wrong example" do
|
37
|
+
matcher = ExampleMatcher.new("example_group", "other example")
|
38
|
+
matcher.should_not match_description("example_group example")
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should not match wrong example_group" do
|
42
|
+
matcher = ExampleMatcher.new("other example_group", "example")
|
43
|
+
matcher.should_not match_description("example_group example")
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should match example only" do
|
47
|
+
matcher = ExampleMatcher.new("example_group", "example")
|
48
|
+
matcher.should match_description("example")
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should match example_group only" do
|
52
|
+
matcher = ExampleMatcher.new("example_group", "example")
|
53
|
+
matcher.should match_description("example_group")
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should match example_group ending with before(:all)" do
|
57
|
+
matcher = ExampleMatcher.new("example_group", "example")
|
58
|
+
matcher.should match_description("example_group before(:all)")
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should escape regexp chars" do
|
62
|
+
matcher = ExampleMatcher.new("(con|text)", "[example]")
|
63
|
+
matcher.should_not match_description("con p")
|
64
|
+
end
|
65
|
+
|
66
|
+
it "should match when example_group is modularized" do
|
67
|
+
matcher = ExampleMatcher.new("MyModule::MyClass", "example")
|
68
|
+
matcher.should match_description("MyClass example")
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
describe ExampleMatcher, "#matches? normal case" do
|
73
|
+
it "matches when passed in example matches" do
|
74
|
+
matcher = ExampleMatcher.new("Foo", "bar")
|
75
|
+
matcher.matches?(["no match", "Foo bar"]).should == true
|
76
|
+
end
|
77
|
+
|
78
|
+
it "does not match when no passed in examples match" do
|
79
|
+
matcher = ExampleMatcher.new("Foo", "bar")
|
80
|
+
matcher.matches?(["no match1", "no match2"]).should == false
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
describe ExampleMatcher, "#matches? where description has '::' in it" do
|
85
|
+
it "matches when passed in example matches" do
|
86
|
+
matcher = ExampleMatcher.new("Foo::Bar", "baz")
|
87
|
+
matcher.matches?(["no match", "Foo::Bar baz"]).should == true
|
88
|
+
end
|
89
|
+
|
90
|
+
it "does not match when no passed in examples match" do
|
91
|
+
matcher = ExampleMatcher.new("Foo::Bar", "baz")
|
92
|
+
matcher.matches?(["no match1", "no match2"]).should == false
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
@@ -0,0 +1,169 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
+
|
3
|
+
module Spec
|
4
|
+
module Example
|
5
|
+
module ModuleThatIsReopened
|
6
|
+
end
|
7
|
+
|
8
|
+
module ExampleMethods
|
9
|
+
include ModuleThatIsReopened
|
10
|
+
end
|
11
|
+
|
12
|
+
module ModuleThatIsReopened
|
13
|
+
def module_that_is_reopened_method
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe ExampleMethods do
|
18
|
+
describe "with an included module that is reopened" do
|
19
|
+
it "should have repoened methods" do
|
20
|
+
method(:module_that_is_reopened_method).should_not be_nil
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "lifecycle" do
|
25
|
+
with_sandboxed_options do
|
26
|
+
before do
|
27
|
+
@options.formatters << mock("formatter", :null_object => true)
|
28
|
+
@options.backtrace_tweaker = mock("backtrace_tweaker", :null_object => true)
|
29
|
+
@reporter = FakeReporter.new(@options)
|
30
|
+
@options.reporter = @reporter
|
31
|
+
|
32
|
+
ExampleGroup.before_all_parts.should == []
|
33
|
+
ExampleGroup.before_each_parts.should == []
|
34
|
+
ExampleGroup.after_each_parts.should == []
|
35
|
+
ExampleGroup.after_all_parts.should == []
|
36
|
+
def ExampleGroup.count
|
37
|
+
@count ||= 0
|
38
|
+
@count = @count + 1
|
39
|
+
@count
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
after do
|
44
|
+
ExampleGroup.instance_variable_set("@before_all_parts", [])
|
45
|
+
ExampleGroup.instance_variable_set("@before_each_parts", [])
|
46
|
+
ExampleGroup.instance_variable_set("@after_each_parts", [])
|
47
|
+
ExampleGroup.instance_variable_set("@after_all_parts", [])
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should pass before and after callbacks to all ExampleGroup subclasses" do
|
51
|
+
ExampleGroup.before(:suite) do
|
52
|
+
ExampleGroup.count.should == 1
|
53
|
+
end
|
54
|
+
|
55
|
+
ExampleGroup.before(:all) do
|
56
|
+
ExampleGroup.count.should == 2
|
57
|
+
end
|
58
|
+
|
59
|
+
ExampleGroup.before(:each) do
|
60
|
+
ExampleGroup.count.should == 3
|
61
|
+
end
|
62
|
+
|
63
|
+
ExampleGroup.after(:each) do
|
64
|
+
ExampleGroup.count.should == 4
|
65
|
+
end
|
66
|
+
|
67
|
+
ExampleGroup.after(:all) do
|
68
|
+
ExampleGroup.count.should == 5
|
69
|
+
end
|
70
|
+
|
71
|
+
ExampleGroup.after(:suite) do
|
72
|
+
ExampleGroup.count.should == 6
|
73
|
+
end
|
74
|
+
|
75
|
+
Class.new(ExampleGroup) do
|
76
|
+
it "should use ExampleMethods callbacks" do end
|
77
|
+
end
|
78
|
+
@options.run_examples
|
79
|
+
ExampleGroup.count.should == 7
|
80
|
+
end
|
81
|
+
|
82
|
+
describe "eval_block" do
|
83
|
+
before(:each) do
|
84
|
+
@example_group = Class.new(ExampleGroup)
|
85
|
+
end
|
86
|
+
|
87
|
+
describe "with a given description" do
|
88
|
+
it "should provide the given description" do
|
89
|
+
@example = @example_group.it("given description") { 2.should == 2 }
|
90
|
+
@example.eval_block
|
91
|
+
@example.description.should == "given description"
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
describe "with no given description" do
|
96
|
+
it "should provide the generated description" do
|
97
|
+
@example = @example_group.it { 2.should == 2 }
|
98
|
+
@example.eval_block
|
99
|
+
@example.description.should == "should == 2"
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
describe "with no implementation" do
|
104
|
+
it "should raise an NotYetImplementedError" do
|
105
|
+
lambda {
|
106
|
+
@example = @example_group.it
|
107
|
+
@example.eval_block
|
108
|
+
}.should raise_error(Spec::Example::NotYetImplementedError, "Not Yet Implemented")
|
109
|
+
end
|
110
|
+
|
111
|
+
def extract_error(&blk)
|
112
|
+
begin
|
113
|
+
blk.call
|
114
|
+
rescue Exception => e
|
115
|
+
return e
|
116
|
+
end
|
117
|
+
|
118
|
+
nil
|
119
|
+
end
|
120
|
+
|
121
|
+
it "should use the proper file and line number for the NotYetImplementedError" do
|
122
|
+
file = __FILE__
|
123
|
+
line_number = __LINE__ + 3
|
124
|
+
|
125
|
+
error = extract_error do
|
126
|
+
@example = @example_group.it
|
127
|
+
@example.eval_block
|
128
|
+
end
|
129
|
+
|
130
|
+
error.pending_caller.should == "#{file}:#{line_number}"
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
describe "#implementation_backtrace" do
|
138
|
+
it "returns the backtrace of where the implementation was defined" do
|
139
|
+
example_group = Class.new(ExampleGroup) do
|
140
|
+
it "should use ExampleMethods callbacks" do
|
141
|
+
end
|
142
|
+
end
|
143
|
+
example = example_group.examples.first
|
144
|
+
example.implementation_backtrace.join("\n").should include("#{__FILE__}:#{__LINE__-4}")
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
describe "#__full_description" do
|
149
|
+
it "should return the full description of the ExampleGroup and Example" do
|
150
|
+
example_group = Class.new(ExampleGroup).describe("An ExampleGroup") do
|
151
|
+
it "should do something" do
|
152
|
+
end
|
153
|
+
end
|
154
|
+
example = example_group.examples.first
|
155
|
+
example.__full_description.should == "An ExampleGroup should do something"
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
describe "#options" do
|
161
|
+
it "should expose the options hash" do
|
162
|
+
example_group = Class.new(ExampleGroup)
|
163
|
+
example = example_group.example "name", :this => 'that' do; end
|
164
|
+
example.options[:this].should == 'that'
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
end
|
169
|
+
end
|
@@ -0,0 +1,194 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
+
|
3
|
+
module Spec
|
4
|
+
module Example
|
5
|
+
# describe "Spec::Example::ExampleRunner", "#run", :shared => true do
|
6
|
+
# before(:each) do
|
7
|
+
# @options = ::Spec::Runner::Options.new(StringIO.new, StringIO.new)
|
8
|
+
# @reporter = ::Spec::Runner::Reporter.new(@options)
|
9
|
+
# @options.reporter = @reporter
|
10
|
+
# @example_group_class = Class.new(ExampleGroup) do
|
11
|
+
# plugin_mock_framework
|
12
|
+
# describe("Some Examples")
|
13
|
+
# end
|
14
|
+
# end
|
15
|
+
#
|
16
|
+
# def create_runner(example_definition)
|
17
|
+
# example = @example_group_class.new(example_definition)
|
18
|
+
# runner = ExampleGroup.new(@options, example)
|
19
|
+
# runner.stub!(:verify_mocks)
|
20
|
+
# runner.stub!(:teardown_mocks)
|
21
|
+
# runner
|
22
|
+
# end
|
23
|
+
# end
|
24
|
+
#
|
25
|
+
# describe ExampleRunner, "#run with blank passing example" do
|
26
|
+
# it_should_behave_like "Spec::Example::ExampleRunner#run"
|
27
|
+
#
|
28
|
+
# before do
|
29
|
+
# @e = @example_group_class.it("example") {}
|
30
|
+
# @runner = create_runner(@e)
|
31
|
+
# end
|
32
|
+
#
|
33
|
+
# it "should send reporter example_started" do
|
34
|
+
# @reporter.should_receive(:example_started).with(equal(@e))
|
35
|
+
# @runner.run
|
36
|
+
# end
|
37
|
+
#
|
38
|
+
# it "should report its name for dry run" do
|
39
|
+
# @options.dry_run = true
|
40
|
+
# @reporter.should_receive(:example_finished).with(equal(@e), nil)
|
41
|
+
# @runner.run
|
42
|
+
# end
|
43
|
+
#
|
44
|
+
# it "should report success" do
|
45
|
+
# @reporter.should_receive(:example_finished).with(equal(@e), nil)
|
46
|
+
# @runner.run
|
47
|
+
# end
|
48
|
+
# end
|
49
|
+
#
|
50
|
+
# describe ExampleRunner, "#run with a failing example" do
|
51
|
+
# predicate_matchers[:is_a] = [:is_a?]
|
52
|
+
# it_should_behave_like "Spec::Example::ExampleRunner#run"
|
53
|
+
#
|
54
|
+
# before do
|
55
|
+
# @e = @example_group_class.it("example") do
|
56
|
+
# (2+2).should == 5
|
57
|
+
# end
|
58
|
+
# @runner = create_runner(@e)
|
59
|
+
# end
|
60
|
+
#
|
61
|
+
# it "should report failure due to failure" do
|
62
|
+
# @reporter.should_receive(:example_finished).with(
|
63
|
+
# equal(@e),
|
64
|
+
# is_a(Spec::Expectations::ExpectationNotMetError)
|
65
|
+
# )
|
66
|
+
# @runner.run
|
67
|
+
# end
|
68
|
+
# end
|
69
|
+
#
|
70
|
+
# describe ExampleRunner, "#run with a erroring example" do
|
71
|
+
# it_should_behave_like "Spec::Example::ExampleRunner#run"
|
72
|
+
#
|
73
|
+
# before do
|
74
|
+
# @error = error = NonStandardError.new("in body")
|
75
|
+
# @example_definition = @example_group_class.it("example") do
|
76
|
+
# raise(error)
|
77
|
+
# end
|
78
|
+
# @runner = create_runner(@example_definition)
|
79
|
+
# end
|
80
|
+
#
|
81
|
+
# it "should report failure due to error" do
|
82
|
+
# @reporter.should_receive(:example_finished).with(
|
83
|
+
# equal(@example_definition),
|
84
|
+
# @error
|
85
|
+
# )
|
86
|
+
# @runner.run
|
87
|
+
# end
|
88
|
+
#
|
89
|
+
# it "should run after_each block" do
|
90
|
+
# @example_group_class.after(:each) do
|
91
|
+
# raise("in after_each")
|
92
|
+
# end
|
93
|
+
# @reporter.should_receive(:example_finished) do |example_definition, error|
|
94
|
+
# example_definition.should equal(@example_definition)
|
95
|
+
# error.message.should eql("in body")
|
96
|
+
# end
|
97
|
+
# @runner.run
|
98
|
+
# end
|
99
|
+
# end
|
100
|
+
#
|
101
|
+
# describe ExampleRunner, "#run where after_each fails" do
|
102
|
+
# it_should_behave_like "Spec::Example::ExampleRunner#run"
|
103
|
+
#
|
104
|
+
# before do
|
105
|
+
# @example_ran = example_ran = false
|
106
|
+
# @example_definition = @example_group_class.it("should not run") do
|
107
|
+
# example_ran = true
|
108
|
+
# end
|
109
|
+
# @runner = create_runner(@example_definition)
|
110
|
+
# @example_group_class.after(:each) { raise(NonStandardError.new("in after_each")) }
|
111
|
+
# end
|
112
|
+
#
|
113
|
+
# it "should report failure location when in after_each" do
|
114
|
+
# @reporter.should_receive(:example_finished) do |example_definition, error|
|
115
|
+
# example_definition.should equal(@example_definition)
|
116
|
+
# error.message.should eql("in after_each")
|
117
|
+
# end
|
118
|
+
# @runner.run
|
119
|
+
# end
|
120
|
+
# end
|
121
|
+
#
|
122
|
+
# describe ExampleRunner, "#run with use cases" do
|
123
|
+
# predicate_matchers[:is_a] = [:is_a?]
|
124
|
+
# it_should_behave_like "Spec::Example::ExampleRunner#run"
|
125
|
+
#
|
126
|
+
# it "should report NO NAME when told to use generated description with --dry-run" do
|
127
|
+
# @options.dry_run = true
|
128
|
+
# example_definition = @example_group_class.it() do
|
129
|
+
# 5.should == 5
|
130
|
+
# end
|
131
|
+
# runner = create_runner(example_definition)
|
132
|
+
#
|
133
|
+
# @reporter.should_receive(:example_finished) do |example_definition, error|
|
134
|
+
# example_definition.description.should == "NO NAME (Because of --dry-run)"
|
135
|
+
# end
|
136
|
+
# runner.run
|
137
|
+
# end
|
138
|
+
#
|
139
|
+
# it "should report given name if present with --dry-run" do
|
140
|
+
# @options.dry_run = true
|
141
|
+
# example_definition = @example_group_class.it("example name") do
|
142
|
+
# 5.should == 5
|
143
|
+
# end
|
144
|
+
# runner = create_runner(example_definition)
|
145
|
+
#
|
146
|
+
# @reporter.should_receive(:example_finished) do |example_definition, error|
|
147
|
+
# example_definition.description.should == "example name"
|
148
|
+
# end
|
149
|
+
# runner.run
|
150
|
+
# end
|
151
|
+
#
|
152
|
+
# it "should report NO NAME when told to use generated description with no expectations" do
|
153
|
+
# example_definition = @example_group_class.it() {}
|
154
|
+
# runner = create_runner(example_definition)
|
155
|
+
# @reporter.should_receive(:example_finished) do |example, error|
|
156
|
+
# example.description.should == "NO NAME (Because there were no expectations)"
|
157
|
+
# end
|
158
|
+
# runner.run
|
159
|
+
# end
|
160
|
+
#
|
161
|
+
# it "should report NO NAME when told to use generated description and matcher fails" do
|
162
|
+
# example_definition = @example_group_class.it() do
|
163
|
+
# 5.should "" # Has no matches? method..
|
164
|
+
# end
|
165
|
+
# runner = create_runner(example_definition)
|
166
|
+
#
|
167
|
+
# @reporter.should_receive(:example_finished) do |example, error|
|
168
|
+
# example_definition.description.should == "NO NAME (Because of Error raised in matcher)"
|
169
|
+
# end
|
170
|
+
# runner.run
|
171
|
+
# end
|
172
|
+
#
|
173
|
+
# it "should report generated description when told to and it is available" do
|
174
|
+
# example_definition = @example_group_class.it() {
|
175
|
+
# 5.should == 5
|
176
|
+
# }
|
177
|
+
# runner = create_runner(example_definition)
|
178
|
+
#
|
179
|
+
# @reporter.should_receive(:example_finished) do |example_definition, error|
|
180
|
+
# example_definition.description.should == "should == 5"
|
181
|
+
# end
|
182
|
+
# runner.run
|
183
|
+
# end
|
184
|
+
#
|
185
|
+
# it "should unregister description_generated callback (lest a memory leak should build up)" do
|
186
|
+
# example_definition = @example_group_class.it("something")
|
187
|
+
# runner = create_runner(example_definition)
|
188
|
+
#
|
189
|
+
# Spec::Matchers.should_receive(:example_finished)
|
190
|
+
# runner.run
|
191
|
+
# end
|
192
|
+
# end
|
193
|
+
end
|
194
|
+
end
|