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,64 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
+
|
3
|
+
describe "should include(expected)" do
|
4
|
+
it "should pass if target includes expected" do
|
5
|
+
[1,2,3].should include(3)
|
6
|
+
"abc".should include("a")
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should fail if target does not include expected" do
|
10
|
+
lambda {
|
11
|
+
[1,2,3].should include(4)
|
12
|
+
}.should fail_with("expected [1, 2, 3] to include 4")
|
13
|
+
lambda {
|
14
|
+
"abc".should include("d")
|
15
|
+
}.should fail_with("expected \"abc\" to include \"d\"")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe "should include(with, multiple, args)" do
|
20
|
+
it "should pass if target includes all items" do
|
21
|
+
[1,2,3].should include(1,2,3)
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should fail if target does not include any one of the items" do
|
25
|
+
lambda {
|
26
|
+
[1,2,3].should include(1,2,4)
|
27
|
+
}.should fail_with("expected [1, 2, 3] to include 1, 2 and 4")
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe "should_not include(expected)" do
|
32
|
+
it "should pass if target does not include expected" do
|
33
|
+
[1,2,3].should_not include(4)
|
34
|
+
"abc".should_not include("d")
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should fail if target includes expected" do
|
38
|
+
lambda {
|
39
|
+
[1,2,3].should_not include(3)
|
40
|
+
}.should fail_with("expected [1, 2, 3] not to include 3")
|
41
|
+
lambda {
|
42
|
+
"abc".should_not include("c")
|
43
|
+
}.should fail_with("expected \"abc\" not to include \"c\"")
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe "should include(:key => value)" do
|
48
|
+
it "should pass if target is a Hash and includes the key/value pair" do
|
49
|
+
{:key => 'value'}.should include(:key => 'value')
|
50
|
+
end
|
51
|
+
it "should pass if target is a Hash and includes the key/value pair among others" do
|
52
|
+
{:key => 'value', :other => 'different'}.should include(:key => 'value')
|
53
|
+
end
|
54
|
+
it "should fail if target is a Hash and has a different value for key" do
|
55
|
+
lambda {
|
56
|
+
{:key => 'different'}.should include(:key => 'value')
|
57
|
+
}.should fail_with(%Q|expected {:key=>"different"} to include {:key=>"value"}|)
|
58
|
+
end
|
59
|
+
it "should fail if target is a Hash and has a different key" do
|
60
|
+
lambda {
|
61
|
+
{:other => 'value'}.should include(:key => 'value')
|
62
|
+
}.should fail_with(%Q|expected {:other=>"value"} to include {:key=>"value"}|)
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
+
|
3
|
+
describe "should match(expected)" do
|
4
|
+
it "should pass when target (String) matches expected (Regexp)" do
|
5
|
+
"string".should match(/tri/)
|
6
|
+
end
|
7
|
+
|
8
|
+
it "should fail when target (String) does not match expected (Regexp)" do
|
9
|
+
lambda {
|
10
|
+
"string".should match(/rings/)
|
11
|
+
}.should fail
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should provide message, expected and actual on failure" do
|
15
|
+
matcher = match(/rings/)
|
16
|
+
matcher.matches?("string")
|
17
|
+
matcher.failure_message.should == ["expected \"string\" to match /rings/", /rings/, "string"]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "should_not match(expected)" do
|
22
|
+
it "should pass when target (String) matches does not match (Regexp)" do
|
23
|
+
"string".should_not match(/rings/)
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should fail when target (String) matches expected (Regexp)" do
|
27
|
+
lambda {
|
28
|
+
"string".should_not match(/tri/)
|
29
|
+
}.should fail
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should provide message, expected and actual on failure" do
|
33
|
+
matcher = match(/tri/)
|
34
|
+
matcher.matches?("string")
|
35
|
+
matcher.negative_failure_message.should == ["expected \"string\" not to match /tri/", /tri/, "string"]
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
+
|
3
|
+
module Spec
|
4
|
+
module Matchers
|
5
|
+
context %Q{The Spec::Matchers module gets included in the execution context of every spec.
|
6
|
+
This module should provide the following methods, each of which returns a Matcher object.} do
|
7
|
+
it "be_true" do
|
8
|
+
be_true.should be_an_instance_of(Be)
|
9
|
+
end
|
10
|
+
it "be_false" do
|
11
|
+
be_false.should be_an_instance_of(Be)
|
12
|
+
end
|
13
|
+
it "be_nil" do
|
14
|
+
be_nil.should be_an_instance_of(Be)
|
15
|
+
end
|
16
|
+
it "be_arbitrary_predicate" do
|
17
|
+
be_arbitrary_predicate.should be_an_instance_of(Be)
|
18
|
+
end
|
19
|
+
it "be_close" do
|
20
|
+
be_close(1,2).should be_an_instance_of(BeClose)
|
21
|
+
end
|
22
|
+
it "change" do
|
23
|
+
change("target", :message).should be_an_instance_of(Change)
|
24
|
+
end
|
25
|
+
it "eql" do
|
26
|
+
eql(:expected).should be_an_instance_of(Eql)
|
27
|
+
end
|
28
|
+
it "equal" do
|
29
|
+
equal(:expected).should be_an_instance_of(Equal)
|
30
|
+
end
|
31
|
+
it "have" do
|
32
|
+
have(0).should be_an_instance_of(Have)
|
33
|
+
end
|
34
|
+
it "have_exactly" do
|
35
|
+
have_exactly(0).should be_an_instance_of(Have)
|
36
|
+
end
|
37
|
+
it "have_at_least" do
|
38
|
+
have_at_least(0).should be_an_instance_of(Have)
|
39
|
+
end
|
40
|
+
it "have_at_most" do
|
41
|
+
have_at_most(0).should be_an_instance_of(Have)
|
42
|
+
end
|
43
|
+
it "include" do
|
44
|
+
include(:value).should be_an_instance_of(Include)
|
45
|
+
end
|
46
|
+
it "match" do
|
47
|
+
match(:value).should be_an_instance_of(Match)
|
48
|
+
end
|
49
|
+
it "raise_error" do
|
50
|
+
raise_error.should be_an_instance_of(RaiseError)
|
51
|
+
raise_error(NoMethodError).should be_an_instance_of(RaiseError)
|
52
|
+
raise_error(NoMethodError, "message").should be_an_instance_of(RaiseError)
|
53
|
+
end
|
54
|
+
it "satisfy" do
|
55
|
+
satisfy{}.should be_an_instance_of(Satisfy)
|
56
|
+
end
|
57
|
+
it "throw_symbol" do
|
58
|
+
throw_symbol.should be_an_instance_of(ThrowSymbol)
|
59
|
+
throw_symbol(:sym).should be_an_instance_of(ThrowSymbol)
|
60
|
+
end
|
61
|
+
it "respond_to" do
|
62
|
+
respond_to(:sym).should be_an_instance_of(RespondTo)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
describe "Spec::Matchers#method_missing" do
|
67
|
+
it "should convert be_xyz to Be(:be_xyz)" do
|
68
|
+
Be.should_receive(:new).with(:be_whatever)
|
69
|
+
be_whatever
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should convert have_xyz to Has(:have_xyz)" do
|
73
|
+
Has.should_receive(:new).with(:have_whatever)
|
74
|
+
have_whatever
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
+
|
3
|
+
describe "The anything() mock argument constraint matcher" do
|
4
|
+
specify { anything.should == Object.new }
|
5
|
+
specify { anything.should == Class }
|
6
|
+
specify { anything.should == 1 }
|
7
|
+
specify { anything.should == "a string" }
|
8
|
+
specify { anything.should == :a_symbol }
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "The boolean() mock argument constraint matcher" do
|
12
|
+
specify { boolean.should == true }
|
13
|
+
specify { boolean.should == false }
|
14
|
+
specify { boolean.should_not == Object.new }
|
15
|
+
specify { boolean.should_not == Class }
|
16
|
+
specify { boolean.should_not == 1 }
|
17
|
+
specify { boolean.should_not == "a string" }
|
18
|
+
specify { boolean.should_not == :a_symbol }
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "The an_instance_of() mock argument constraint matcher" do
|
22
|
+
# NOTE - this is implemented as a predicate_matcher - see example_group_methods.rb
|
23
|
+
specify { an_instance_of(String).should == "string" }
|
24
|
+
end
|
@@ -0,0 +1,191 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
+
|
3
|
+
require 'spec/expectations/differs/default'
|
4
|
+
|
5
|
+
describe "should ==" do
|
6
|
+
|
7
|
+
it "should delegate message to target" do
|
8
|
+
subject = "apple"
|
9
|
+
subject.should_receive(:==).with("apple").and_return(true)
|
10
|
+
subject.should == "apple"
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should return true on success" do
|
14
|
+
subject = "apple"
|
15
|
+
(subject.should == "apple").should be_true
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should fail when target.==(actual) returns false" do
|
19
|
+
subject = "apple"
|
20
|
+
Spec::Expectations.should_receive(:fail_with).with(%[expected: "orange",\n got: "apple" (using ==)], "orange", "apple")
|
21
|
+
subject.should == "orange"
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
describe "should_not ==" do
|
27
|
+
|
28
|
+
it "should delegate message to target" do
|
29
|
+
subject = "orange"
|
30
|
+
subject.should_receive(:==).with("apple").and_return(false)
|
31
|
+
subject.should_not == "apple"
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should return true on success" do
|
35
|
+
subject = "apple"
|
36
|
+
(subject.should_not == "orange").should be_true
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should fail when target.==(actual) returns false" do
|
40
|
+
subject = "apple"
|
41
|
+
Spec::Expectations.should_receive(:fail_with).with(%[expected not: == "apple",\n got: "apple"], "apple", "apple")
|
42
|
+
subject.should_not == "apple"
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
describe "should ===" do
|
48
|
+
|
49
|
+
it "should delegate message to target" do
|
50
|
+
subject = "apple"
|
51
|
+
subject.should_receive(:===).with("apple").and_return(true)
|
52
|
+
subject.should === "apple"
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should fail when target.===(actual) returns false" do
|
56
|
+
subject = "apple"
|
57
|
+
subject.should_receive(:===).with("orange").and_return(false)
|
58
|
+
Spec::Expectations.should_receive(:fail_with).with(%[expected: "orange",\n got: "apple" (using ===)], "orange", "apple")
|
59
|
+
subject.should === "orange"
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
describe "should_not ===" do
|
65
|
+
|
66
|
+
it "should delegate message to target" do
|
67
|
+
subject = "orange"
|
68
|
+
subject.should_receive(:===).with("apple").and_return(false)
|
69
|
+
subject.should_not === "apple"
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should fail when target.===(actual) returns false" do
|
73
|
+
subject = "apple"
|
74
|
+
subject.should_receive(:===).with("apple").and_return(true)
|
75
|
+
Spec::Expectations.should_receive(:fail_with).with(%[expected not: === "apple",\n got: "apple"], "apple", "apple")
|
76
|
+
subject.should_not === "apple"
|
77
|
+
end
|
78
|
+
|
79
|
+
end
|
80
|
+
|
81
|
+
describe "should =~" do
|
82
|
+
|
83
|
+
it "should delegate message to target" do
|
84
|
+
subject = "foo"
|
85
|
+
subject.should_receive(:=~).with(/oo/).and_return(true)
|
86
|
+
subject.should =~ /oo/
|
87
|
+
end
|
88
|
+
|
89
|
+
it "should fail when target.=~(actual) returns false" do
|
90
|
+
subject = "fu"
|
91
|
+
subject.should_receive(:=~).with(/oo/).and_return(false)
|
92
|
+
Spec::Expectations.should_receive(:fail_with).with(%[expected: /oo/,\n got: "fu" (using =~)], /oo/, "fu")
|
93
|
+
subject.should =~ /oo/
|
94
|
+
end
|
95
|
+
|
96
|
+
end
|
97
|
+
|
98
|
+
describe "should_not =~" do
|
99
|
+
|
100
|
+
it "should delegate message to target" do
|
101
|
+
subject = "fu"
|
102
|
+
subject.should_receive(:=~).with(/oo/).and_return(false)
|
103
|
+
subject.should_not =~ /oo/
|
104
|
+
end
|
105
|
+
|
106
|
+
it "should fail when target.=~(actual) returns false" do
|
107
|
+
subject = "foo"
|
108
|
+
subject.should_receive(:=~).with(/oo/).and_return(true)
|
109
|
+
Spec::Expectations.should_receive(:fail_with).with(%[expected not: =~ /oo/,\n got: "foo"], /oo/, "foo")
|
110
|
+
subject.should_not =~ /oo/
|
111
|
+
end
|
112
|
+
|
113
|
+
end
|
114
|
+
|
115
|
+
describe "should >" do
|
116
|
+
|
117
|
+
it "should pass if > passes" do
|
118
|
+
4.should > 3
|
119
|
+
end
|
120
|
+
|
121
|
+
it "should fail if > fails" do
|
122
|
+
Spec::Expectations.should_receive(:fail_with).with(%[expected: > 5,\n got: 4], 5, 4)
|
123
|
+
4.should > 5
|
124
|
+
end
|
125
|
+
|
126
|
+
end
|
127
|
+
|
128
|
+
describe "should >=" do
|
129
|
+
|
130
|
+
it "should pass if >= passes" do
|
131
|
+
4.should > 3
|
132
|
+
4.should >= 4
|
133
|
+
end
|
134
|
+
|
135
|
+
it "should fail if > fails" do
|
136
|
+
Spec::Expectations.should_receive(:fail_with).with(%[expected: >= 5,\n got: 4], 5, 4)
|
137
|
+
4.should >= 5
|
138
|
+
end
|
139
|
+
|
140
|
+
end
|
141
|
+
|
142
|
+
describe "should <" do
|
143
|
+
|
144
|
+
it "should pass if < passes" do
|
145
|
+
4.should < 5
|
146
|
+
end
|
147
|
+
|
148
|
+
it "should fail if > fails" do
|
149
|
+
Spec::Expectations.should_receive(:fail_with).with(%[expected: < 3,\n got: 4], 3, 4)
|
150
|
+
4.should < 3
|
151
|
+
end
|
152
|
+
|
153
|
+
end
|
154
|
+
|
155
|
+
describe "should <=" do
|
156
|
+
|
157
|
+
it "should pass if <= passes" do
|
158
|
+
4.should <= 5
|
159
|
+
4.should <= 4
|
160
|
+
end
|
161
|
+
|
162
|
+
it "should fail if > fails" do
|
163
|
+
Spec::Expectations.should_receive(:fail_with).with(%[expected: <= 3,\n got: 4], 3, 4)
|
164
|
+
4.should <= 3
|
165
|
+
end
|
166
|
+
|
167
|
+
end
|
168
|
+
|
169
|
+
describe Spec::Matchers::PositiveOperatorMatcher do
|
170
|
+
|
171
|
+
it "should work when the target has implemented #send" do
|
172
|
+
o = Object.new
|
173
|
+
def o.send(*args); raise "DOH! Library developers shouldn't use #send!" end
|
174
|
+
lambda {
|
175
|
+
o.should == o
|
176
|
+
}.should_not raise_error
|
177
|
+
end
|
178
|
+
|
179
|
+
end
|
180
|
+
|
181
|
+
describe Spec::Matchers::NegativeOperatorMatcher do
|
182
|
+
|
183
|
+
it "should work when the target has implemented #send" do
|
184
|
+
o = Object.new
|
185
|
+
def o.send(*args); raise "DOH! Library developers shouldn't use #send!" end
|
186
|
+
lambda {
|
187
|
+
o.should_not == :foo
|
188
|
+
}.should_not raise_error
|
189
|
+
end
|
190
|
+
|
191
|
+
end
|
@@ -0,0 +1,315 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
+
|
3
|
+
describe "should raise_error" do
|
4
|
+
it "should pass if anything is raised" do
|
5
|
+
lambda {raise}.should raise_error
|
6
|
+
end
|
7
|
+
|
8
|
+
it "should fail if nothing is raised" do
|
9
|
+
lambda {
|
10
|
+
lambda {}.should raise_error
|
11
|
+
}.should fail_with("expected Exception but nothing was raised")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "should_not raise_error" do
|
16
|
+
it "should pass if nothing is raised" do
|
17
|
+
lambda {}.should_not raise_error
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should fail if anything is raised" do
|
21
|
+
lambda {
|
22
|
+
lambda {raise}.should_not raise_error
|
23
|
+
}.should fail_with("expected no Exception, got RuntimeError")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "should raise_error(message)" do
|
28
|
+
it "should pass if RuntimeError is raised with the right message" do
|
29
|
+
lambda {raise 'blah'}.should raise_error('blah')
|
30
|
+
end
|
31
|
+
it "should pass if RuntimeError is raised with a matching message" do
|
32
|
+
lambda {raise 'blah'}.should raise_error(/blah/)
|
33
|
+
end
|
34
|
+
it "should pass if any other error is raised with the right message" do
|
35
|
+
lambda {raise NameError.new('blah')}.should raise_error('blah')
|
36
|
+
end
|
37
|
+
it "should fail if RuntimeError error is raised with the wrong message" do
|
38
|
+
lambda do
|
39
|
+
lambda {raise 'blarg'}.should raise_error('blah')
|
40
|
+
end.should fail_with("expected Exception with \"blah\", got #<RuntimeError: blarg>")
|
41
|
+
end
|
42
|
+
it "should fail if any other error is raised with the wrong message" do
|
43
|
+
lambda do
|
44
|
+
lambda {raise NameError.new('blarg')}.should raise_error('blah')
|
45
|
+
end.should fail_with("expected Exception with \"blah\", got #<NameError: blarg>")
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe "should_not raise_error(message)" do
|
50
|
+
it "should pass if RuntimeError error is raised with the different message" do
|
51
|
+
lambda {raise 'blarg'}.should_not raise_error('blah')
|
52
|
+
end
|
53
|
+
it "should pass if any other error is raised with the wrong message" do
|
54
|
+
lambda {raise NameError.new('blarg')}.should_not raise_error('blah')
|
55
|
+
end
|
56
|
+
it "should fail if RuntimeError is raised with message" do
|
57
|
+
lambda do
|
58
|
+
lambda {raise 'blah'}.should_not raise_error('blah')
|
59
|
+
end.should fail_with(%Q|expected no Exception with "blah", got #<RuntimeError: blah>|)
|
60
|
+
end
|
61
|
+
it "should fail if any other error is raised with message" do
|
62
|
+
lambda do
|
63
|
+
lambda {raise NameError.new('blah')}.should_not raise_error('blah')
|
64
|
+
end.should fail_with(%Q|expected no Exception with "blah", got #<NameError: blah>|)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
describe "should raise_error(NamedError)" do
|
69
|
+
it "should pass if named error is raised" do
|
70
|
+
lambda { non_existent_method }.should raise_error(NameError)
|
71
|
+
end
|
72
|
+
|
73
|
+
it "should fail if nothing is raised" do
|
74
|
+
lambda {
|
75
|
+
lambda { }.should raise_error(NameError)
|
76
|
+
}.should fail_with("expected NameError but nothing was raised")
|
77
|
+
end
|
78
|
+
|
79
|
+
it "should fail if another error is raised (NameError)" do
|
80
|
+
lambda {
|
81
|
+
lambda { raise }.should raise_error(NameError)
|
82
|
+
}.should fail_with("expected NameError, got RuntimeError")
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should fail if another error is raised (NameError)" do
|
86
|
+
lambda {
|
87
|
+
lambda { load "non/existent/file" }.should raise_error(NameError)
|
88
|
+
}.should fail_with(/expected NameError, got #<LoadError/)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
describe "should_not raise_error(NamedError)" do
|
93
|
+
it "should pass if nothing is raised" do
|
94
|
+
lambda { }.should_not raise_error(NameError)
|
95
|
+
end
|
96
|
+
|
97
|
+
it "should pass if another error is raised" do
|
98
|
+
lambda { raise }.should_not raise_error(NameError)
|
99
|
+
end
|
100
|
+
|
101
|
+
it "should fail if named error is raised" do
|
102
|
+
lambda {
|
103
|
+
lambda { non_existent_method }.should_not raise_error(NameError)
|
104
|
+
}.should fail_with(/expected no NameError, got #<NameError: undefined/)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
describe "should raise_error(NamedError, error_message) with String" do
|
109
|
+
it "should pass if named error is raised with same message" do
|
110
|
+
lambda { raise "example message" }.should raise_error(RuntimeError, "example message")
|
111
|
+
end
|
112
|
+
|
113
|
+
it "should fail if nothing is raised" do
|
114
|
+
lambda {
|
115
|
+
lambda {}.should raise_error(RuntimeError, "example message")
|
116
|
+
}.should fail_with("expected RuntimeError with \"example message\" but nothing was raised")
|
117
|
+
end
|
118
|
+
|
119
|
+
it "should fail if incorrect error is raised" do
|
120
|
+
lambda {
|
121
|
+
lambda { raise }.should raise_error(NameError, "example message")
|
122
|
+
}.should fail_with("expected NameError with \"example message\", got RuntimeError")
|
123
|
+
end
|
124
|
+
|
125
|
+
it "should fail if correct error is raised with incorrect message" do
|
126
|
+
lambda {
|
127
|
+
lambda { raise RuntimeError.new("not the example message") }.should raise_error(RuntimeError, "example message")
|
128
|
+
}.should fail_with(/expected RuntimeError with \"example message\", got #<RuntimeError: not the example message/)
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
describe "should raise_error(NamedError, error_message) { |err| ... }" do
|
133
|
+
it "should yield exception if named error is raised with same message" do
|
134
|
+
ran = false
|
135
|
+
|
136
|
+
lambda {
|
137
|
+
raise "example message"
|
138
|
+
}.should raise_error(RuntimeError, "example message") { |err|
|
139
|
+
ran = true
|
140
|
+
err.class.should == RuntimeError
|
141
|
+
err.message.should == "example message"
|
142
|
+
}
|
143
|
+
|
144
|
+
ran.should == true
|
145
|
+
end
|
146
|
+
|
147
|
+
it "yielded block should be able to fail on it's own right" do
|
148
|
+
ran, passed = false, false
|
149
|
+
|
150
|
+
lambda {
|
151
|
+
lambda {
|
152
|
+
raise "example message"
|
153
|
+
}.should raise_error(RuntimeError, "example message") { |err|
|
154
|
+
ran = true
|
155
|
+
5.should == 4
|
156
|
+
passed = true
|
157
|
+
}
|
158
|
+
}.should fail_with(/expected: 4/m)
|
159
|
+
|
160
|
+
ran.should == true
|
161
|
+
passed.should == false
|
162
|
+
end
|
163
|
+
|
164
|
+
it "should NOT yield exception if no error was thrown" do
|
165
|
+
ran = false
|
166
|
+
|
167
|
+
lambda {
|
168
|
+
lambda {}.should raise_error(RuntimeError, "example message") { |err|
|
169
|
+
ran = true
|
170
|
+
}
|
171
|
+
}.should fail_with("expected RuntimeError with \"example message\" but nothing was raised")
|
172
|
+
|
173
|
+
ran.should == false
|
174
|
+
end
|
175
|
+
|
176
|
+
it "should not yield exception if error class is not matched" do
|
177
|
+
ran = false
|
178
|
+
|
179
|
+
lambda {
|
180
|
+
lambda {
|
181
|
+
raise "example message"
|
182
|
+
}.should raise_error(SyntaxError, "example message") { |err|
|
183
|
+
ran = true
|
184
|
+
}
|
185
|
+
}.should fail_with("expected SyntaxError with \"example message\", got #<RuntimeError: example message>")
|
186
|
+
|
187
|
+
ran.should == false
|
188
|
+
end
|
189
|
+
|
190
|
+
it "should NOT yield exception if error message is not matched" do
|
191
|
+
ran = false
|
192
|
+
|
193
|
+
lambda {
|
194
|
+
lambda {
|
195
|
+
raise "example message"
|
196
|
+
}.should raise_error(RuntimeError, "different message") { |err|
|
197
|
+
ran = true
|
198
|
+
}
|
199
|
+
}.should fail_with("expected RuntimeError with \"different message\", got #<RuntimeError: example message>")
|
200
|
+
|
201
|
+
ran.should == false
|
202
|
+
end
|
203
|
+
end
|
204
|
+
|
205
|
+
describe "should_not raise_error(NamedError, error_message) { |err| ... }" do
|
206
|
+
it "should pass if nothing is raised" do
|
207
|
+
ran = false
|
208
|
+
|
209
|
+
lambda {}.should_not raise_error(RuntimeError, "example message") { |err|
|
210
|
+
ran = true
|
211
|
+
}
|
212
|
+
|
213
|
+
ran.should == false
|
214
|
+
end
|
215
|
+
|
216
|
+
it "should pass if a different error is raised" do
|
217
|
+
ran = false
|
218
|
+
|
219
|
+
lambda { raise }.should_not raise_error(NameError, "example message") { |err|
|
220
|
+
ran = true
|
221
|
+
}
|
222
|
+
|
223
|
+
ran.should == false
|
224
|
+
end
|
225
|
+
|
226
|
+
it "should pass if same error is raised with different message" do
|
227
|
+
ran = false
|
228
|
+
|
229
|
+
lambda {
|
230
|
+
raise RuntimeError.new("not the example message")
|
231
|
+
}.should_not raise_error(RuntimeError, "example message") { |err|
|
232
|
+
ran = true
|
233
|
+
}
|
234
|
+
|
235
|
+
ran.should == false
|
236
|
+
end
|
237
|
+
|
238
|
+
it "should fail if named error is raised with same message" do
|
239
|
+
ran = false
|
240
|
+
|
241
|
+
lambda {
|
242
|
+
lambda {
|
243
|
+
raise "example message"
|
244
|
+
}.should_not raise_error(RuntimeError, "example message") { |err|
|
245
|
+
ran = true
|
246
|
+
}
|
247
|
+
}.should fail_with("expected no RuntimeError with \"example message\", got #<RuntimeError: example message>")
|
248
|
+
|
249
|
+
ran.should == false
|
250
|
+
end
|
251
|
+
end
|
252
|
+
|
253
|
+
describe "should_not raise_error(NamedError, error_message) with String" do
|
254
|
+
it "should pass if nothing is raised" do
|
255
|
+
lambda {}.should_not raise_error(RuntimeError, "example message")
|
256
|
+
end
|
257
|
+
|
258
|
+
it "should pass if a different error is raised" do
|
259
|
+
lambda { raise }.should_not raise_error(NameError, "example message")
|
260
|
+
end
|
261
|
+
|
262
|
+
it "should pass if same error is raised with different message" do
|
263
|
+
lambda { raise RuntimeError.new("not the example message") }.should_not raise_error(RuntimeError, "example message")
|
264
|
+
end
|
265
|
+
|
266
|
+
it "should fail if named error is raised with same message" do
|
267
|
+
lambda {
|
268
|
+
lambda { raise "example message" }.should_not raise_error(RuntimeError, "example message")
|
269
|
+
}.should fail_with("expected no RuntimeError with \"example message\", got #<RuntimeError: example message>")
|
270
|
+
end
|
271
|
+
end
|
272
|
+
|
273
|
+
describe "should raise_error(NamedError, error_message) with Regexp" do
|
274
|
+
it "should pass if named error is raised with matching message" do
|
275
|
+
lambda { raise "example message" }.should raise_error(RuntimeError, /ample mess/)
|
276
|
+
end
|
277
|
+
|
278
|
+
it "should fail if nothing is raised" do
|
279
|
+
lambda {
|
280
|
+
lambda {}.should raise_error(RuntimeError, /ample mess/)
|
281
|
+
}.should fail_with("expected RuntimeError with message matching /ample mess/ but nothing was raised")
|
282
|
+
end
|
283
|
+
|
284
|
+
it "should fail if incorrect error is raised" do
|
285
|
+
lambda {
|
286
|
+
lambda { raise }.should raise_error(NameError, /ample mess/)
|
287
|
+
}.should fail_with("expected NameError with message matching /ample mess/, got RuntimeError")
|
288
|
+
end
|
289
|
+
|
290
|
+
it "should fail if correct error is raised with incorrect message" do
|
291
|
+
lambda {
|
292
|
+
lambda { raise RuntimeError.new("not the example message") }.should raise_error(RuntimeError, /less than ample mess/)
|
293
|
+
}.should fail_with("expected RuntimeError with message matching /less than ample mess/, got #<RuntimeError: not the example message>")
|
294
|
+
end
|
295
|
+
end
|
296
|
+
|
297
|
+
describe "should_not raise_error(NamedError, error_message) with Regexp" do
|
298
|
+
it "should pass if nothing is raised" do
|
299
|
+
lambda {}.should_not raise_error(RuntimeError, /ample mess/)
|
300
|
+
end
|
301
|
+
|
302
|
+
it "should pass if a different error is raised" do
|
303
|
+
lambda { raise }.should_not raise_error(NameError, /ample mess/)
|
304
|
+
end
|
305
|
+
|
306
|
+
it "should pass if same error is raised with non-matching message" do
|
307
|
+
lambda { raise RuntimeError.new("non matching message") }.should_not raise_error(RuntimeError, /ample mess/)
|
308
|
+
end
|
309
|
+
|
310
|
+
it "should fail if named error is raised with matching message" do
|
311
|
+
lambda {
|
312
|
+
lambda { raise "example message" }.should_not raise_error(RuntimeError, /ample mess/)
|
313
|
+
}.should fail_with("expected no RuntimeError with message matching /ample mess/, got #<RuntimeError: example message>")
|
314
|
+
end
|
315
|
+
end
|