rspec 1.0.0 → 1.3.1
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/.document +7 -0
- data/History.rdoc +1546 -0
- data/{MIT-LICENSE → License.txt} +3 -1
- data/Manifest.txt +384 -0
- data/README.rdoc +41 -0
- data/Rakefile +94 -229
- data/Ruby1.9.rdoc +31 -0
- data/TODO.txt +17 -0
- data/Upgrade.rdoc +260 -0
- data/bin/autospec +4 -0
- data/bin/spec +5 -3
- data/cucumber.yml +5 -0
- data/examples/failing/README.txt +11 -0
- data/examples/failing/diffing_spec.rb +36 -0
- data/examples/failing/failing_implicit_docstrings_example.rb +17 -0
- data/examples/failing/failure_in_after.rb +10 -0
- data/examples/failing/failure_in_before.rb +10 -0
- data/examples/failing/mocking_example.rb +38 -0
- data/examples/failing/mocking_with_flexmock.rb +26 -0
- data/examples/failing/mocking_with_mocha.rb +25 -0
- data/examples/failing/mocking_with_rr.rb +27 -0
- data/examples/failing/partial_mock_example.rb +18 -0
- data/examples/failing/pending_example.rb +7 -0
- data/examples/failing/predicate_example.rb +32 -0
- data/examples/failing/raising_example.rb +47 -0
- data/examples/failing/syntax_error_example.rb +7 -0
- data/examples/failing/team_spec.rb +41 -0
- data/examples/failing/timeout_behaviour.rb +5 -0
- data/examples/{custom_formatter.rb → passing/custom_formatter.rb} +1 -1
- data/examples/passing/dynamic_spec.rb +7 -0
- data/examples/{file_accessor.rb → passing/file_accessor.rb} +18 -18
- data/examples/{file_accessor_spec.rb → passing/file_accessor_spec.rb} +37 -38
- data/examples/passing/filtered_formatter.rb +17 -0
- data/examples/passing/filtered_formatter_example.rb +31 -0
- data/examples/{greeter_spec.rb → passing/greeter_spec.rb} +1 -1
- data/examples/passing/helper_method_example.rb +12 -0
- data/examples/passing/implicit_docstrings_example.rb +16 -0
- data/examples/{io_processor.rb → passing/io_processor.rb} +8 -8
- data/examples/{io_processor_spec.rb → passing/io_processor_spec.rb} +2 -3
- data/examples/{mocking_example.rb → passing/mocking_example.rb} +0 -2
- data/examples/{multi_threaded_behaviour_runner.rb → passing/multi_threaded_example_group_runner.rb} +10 -9
- data/examples/passing/nested_classes_example.rb +35 -0
- data/examples/passing/options_example.rb +29 -0
- data/examples/passing/options_formatter.rb +20 -0
- data/examples/{partial_mock_example.rb → passing/partial_mock_example.rb} +2 -3
- data/examples/passing/pending_example.rb +18 -0
- data/examples/{predicate_example.rb → passing/predicate_example.rb} +1 -3
- data/examples/{shared_behaviours_example.rb → passing/shared_example_group_example.rb} +15 -11
- data/examples/passing/shared_stack_examples.rb +36 -0
- data/examples/passing/simple_matcher_example.rb +29 -0
- data/examples/{stack.rb → passing/stack.rb} +1 -1
- data/examples/{stack_spec.rb → passing/stack_spec.rb} +6 -40
- data/examples/passing/stack_spec_with_nested_example_groups.rb +66 -0
- data/examples/{stubbing_example.rb → passing/stubbing_example.rb} +1 -3
- data/examples/passing/yielding_example.rb +31 -0
- data/examples/ruby1.9.compatibility/access_to_constants_spec.rb +85 -0
- data/features/before_and_after_blocks/before_and_after_blocks.feature +167 -0
- data/features/command_line/line_number_option.feature +56 -0
- data/features/command_line/line_number_option_with_example_with_no_name.feature +22 -0
- data/features/example_groups/define_example_attribute.feature +41 -0
- data/features/example_groups/example_group_with_should_methods.feature +29 -0
- data/features/example_groups/implicit_docstrings.feature +59 -0
- data/features/example_groups/nested_groups.feature +32 -0
- data/features/expectations/customized_message.feature +54 -0
- data/features/expectations/expect_change.feature +65 -0
- data/features/expectations/expect_error.feature +44 -0
- data/features/extensions/custom_example_group.feature +19 -0
- data/features/formatters/custom_formatter.feature +30 -0
- data/features/formatters/nested_formatter.feature +32 -0
- data/features/interop/cucumber_stubs_dont_leak.feature +11 -0
- data/features/interop/examples_and_tests_together.feature +84 -0
- data/features/interop/rspec_output.feature +25 -0
- data/features/interop/test_but_not_test_unit.feature +26 -0
- data/features/interop/test_case_with_should_methods.feature +46 -0
- data/features/load_paths/add_lib_to_load_path.feature +20 -0
- data/features/load_paths/add_spec_to_load_path.feature +20 -0
- data/features/matchers/define_diffable_matcher.feature +26 -0
- data/features/matchers/define_matcher.feature +179 -0
- data/features/matchers/define_matcher_outside_rspec.feature +38 -0
- data/features/matchers/define_matcher_with_fluent_interface.feature +48 -0
- data/features/matchers/define_wrapped_matcher.feature +56 -0
- data/features/matchers/match_unless_raises.feature +60 -0
- data/features/matchers/match_unless_raises_unexpected_error.feature +39 -0
- data/features/mock_framework_integration/use_flexmock.feature +27 -0
- data/features/mock_framework_integration/use_mocha.feature +27 -0
- data/features/mock_framework_integration/use_rr.feature +27 -0
- data/features/mocks/block_local_expectations.feature +62 -0
- data/features/mocks/mix_stubs_and_mocks.feature +22 -0
- data/features/mocks/stub_implementation.feature +26 -0
- data/features/pending/pending_examples.feature +81 -0
- data/features/runner/specify_line_number.feature +32 -0
- data/features/spec_helper/spec_helper.feature +25 -0
- data/features/step_definitions/running_rspec_steps.rb +52 -0
- data/features/step_definitions/stubbing_steps.rb +16 -0
- data/features/subject/explicit_subject.feature +31 -0
- data/features/subject/implicit_subject.feature +43 -0
- data/features/support/env.rb +83 -0
- data/features/support/matchers/smart_match.rb +31 -0
- data/geminstaller.yml +29 -0
- data/init.rb +9 -0
- data/lib/autotest/discover.rb +3 -0
- data/lib/autotest/rspec.rb +54 -0
- data/lib/spec/adapters/mock_frameworks/flexmock.rb +24 -0
- data/{plugins → lib/spec/adapters}/mock_frameworks/mocha.rb +8 -4
- data/lib/spec/adapters/mock_frameworks/rr.rb +22 -0
- data/lib/spec/adapters/mock_frameworks/rspec.rb +21 -0
- data/lib/spec/autorun.rb +3 -0
- data/lib/spec/deprecation.rb +41 -0
- data/lib/spec/dsl/main.rb +93 -0
- data/lib/spec/dsl.rb +1 -10
- data/lib/spec/example/args_and_options.rb +27 -0
- data/lib/spec/example/before_and_after_hooks.rb +93 -0
- data/lib/spec/example/errors.rb +25 -0
- data/lib/spec/example/example_group.rb +10 -0
- data/lib/spec/example/example_group_factory.rb +82 -0
- data/lib/spec/example/example_group_hierarchy.rb +53 -0
- data/lib/spec/example/example_group_methods.rb +287 -0
- data/lib/spec/example/example_group_proxy.rb +61 -0
- data/lib/spec/example/example_matcher.rb +43 -0
- data/lib/spec/example/example_methods.rb +152 -0
- data/lib/spec/example/example_proxy.rb +41 -0
- data/lib/spec/example/module_reopening_fix.rb +43 -0
- data/lib/spec/example/pending.rb +18 -0
- data/lib/spec/example/predicate_matchers.rb +46 -0
- data/lib/spec/example/shared_example_group.rb +59 -0
- data/lib/spec/example/subject.rb +114 -0
- data/lib/spec/example.rb +164 -0
- data/lib/spec/expectations/errors.rb +7 -1
- data/lib/spec/expectations/extensions/kernel.rb +52 -0
- data/lib/spec/expectations/extensions.rb +1 -2
- data/lib/spec/expectations/fail_with.rb +45 -0
- data/lib/spec/expectations/handler.rb +37 -30
- data/lib/spec/expectations.rb +2 -23
- data/lib/spec/extensions/instance_exec.rb +31 -0
- data/lib/spec/interop/test/unit/autorunner.rb +6 -0
- data/lib/spec/interop/test/unit/testcase.rb +56 -0
- data/lib/spec/interop/test/unit/testresult.rb +6 -0
- data/lib/spec/interop/test/unit/testsuite_adapter.rb +36 -0
- data/lib/spec/interop/test/unit/ui/console/testrunner.rb +61 -0
- data/lib/spec/interop/test.rb +44 -0
- data/lib/spec/matchers/be.rb +183 -140
- data/lib/spec/matchers/be_close.rb +18 -23
- data/lib/spec/matchers/be_instance_of.rb +26 -0
- data/lib/spec/matchers/be_kind_of.rb +26 -0
- data/lib/spec/matchers/change.rb +72 -41
- data/lib/spec/matchers/compatibility.rb +14 -0
- data/lib/spec/matchers/dsl.rb +20 -0
- data/lib/spec/matchers/eql.rb +25 -26
- data/lib/spec/matchers/equal.rb +35 -25
- data/lib/spec/matchers/errors.rb +5 -0
- data/lib/spec/matchers/exist.rb +16 -0
- data/lib/spec/matchers/generated_descriptions.rb +36 -0
- data/lib/spec/matchers/has.rb +17 -26
- data/lib/spec/matchers/have.rb +36 -24
- data/lib/spec/matchers/include.rb +22 -48
- data/lib/spec/matchers/match.rb +11 -31
- data/lib/spec/matchers/match_array.rb +71 -0
- data/lib/spec/matchers/matcher.rb +132 -0
- data/lib/spec/matchers/method_missing.rb +9 -0
- data/lib/spec/matchers/operator_matcher.rb +55 -44
- data/lib/spec/matchers/pretty.rb +37 -0
- data/lib/spec/matchers/raise_exception.rb +131 -0
- data/lib/spec/matchers/respond_to.rb +35 -9
- data/lib/spec/matchers/satisfy.rb +2 -2
- data/lib/spec/matchers/simple_matcher.rb +134 -0
- data/lib/spec/matchers/throw_symbol.rb +56 -31
- data/lib/spec/matchers/wrap_expectation.rb +55 -0
- data/lib/spec/matchers.rb +104 -48
- data/lib/spec/mocks/argument_expectation.rb +28 -112
- data/lib/spec/mocks/argument_matchers.rb +237 -0
- data/lib/spec/mocks/error_generator.rb +20 -13
- data/lib/spec/mocks/errors.rb +1 -1
- data/lib/spec/mocks/example_methods.rb +69 -0
- data/lib/spec/mocks/extensions.rb +1 -0
- data/lib/spec/mocks/framework.rb +15 -0
- data/lib/spec/mocks/message_expectation.rb +206 -93
- data/lib/spec/mocks/methods.rb +66 -7
- data/lib/spec/mocks/mock.rb +53 -11
- data/lib/spec/mocks/proxy.rb +160 -55
- data/lib/spec/mocks/space.rb +2 -2
- data/lib/spec/mocks.rb +14 -23
- data/lib/spec/rake/spectask.rb +108 -53
- data/lib/spec/rake/verify_rcov.rb +4 -4
- data/lib/spec/ruby.rb +9 -0
- data/lib/spec/runner/backtrace_tweaker.rb +45 -23
- data/lib/spec/runner/class_and_arguments_parser.rb +14 -0
- data/lib/spec/runner/command_line.rb +7 -14
- data/lib/spec/runner/configuration.rb +202 -0
- data/lib/spec/runner/differs/default.rb +93 -0
- data/lib/spec/runner/differs/load-diff-lcs.rb +12 -0
- data/lib/spec/runner/drb_command_line.rb +18 -7
- data/lib/spec/runner/example_group_runner.rb +58 -0
- data/lib/spec/runner/extensions/kernel.rb +5 -46
- data/lib/spec/runner/formatter/base_formatter.rb +97 -26
- data/lib/spec/runner/formatter/base_text_formatter.rb +79 -39
- data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +25 -0
- data/lib/spec/runner/formatter/failing_examples_formatter.rb +6 -8
- data/lib/spec/runner/formatter/html_formatter.rb +101 -75
- data/lib/spec/runner/formatter/nested_text_formatter.rb +50 -0
- data/lib/spec/runner/formatter/no_op_method_missing.rb +21 -0
- data/lib/spec/runner/formatter/profile_formatter.rb +47 -0
- data/lib/spec/runner/formatter/progress_bar_formatter.rb +11 -8
- data/lib/spec/runner/formatter/silent_formatter.rb +10 -0
- data/lib/spec/runner/formatter/snippet_extractor.rb +2 -2
- data/lib/spec/runner/formatter/specdoc_formatter.rb +20 -15
- data/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
- data/lib/spec/runner/heckle_runner.rb +56 -56
- data/lib/spec/runner/{heckle_runner_win.rb → heckle_runner_unsupported.rb} +10 -10
- data/lib/spec/runner/line_number_query.rb +78 -0
- data/lib/spec/runner/option_parser.rb +147 -148
- data/lib/spec/runner/options.rb +343 -95
- data/lib/spec/runner/reporter.rb +117 -60
- data/lib/spec/runner.rb +39 -138
- data/lib/spec/stubs/cucumber.rb +5 -0
- data/lib/spec/test/unit.rb +10 -0
- data/lib/spec/version.rb +14 -22
- data/lib/spec.rb +5 -10
- data/resources/helpers/cmdline.rb +8 -0
- data/resources/rake/examples.rake +7 -0
- data/resources/rake/examples_with_rcov.rake +9 -0
- data/resources/rake/failing_examples_with_html.rake +9 -0
- data/resources/rake/verify_rcov.rake +7 -0
- data/spec/README.jruby +15 -0
- data/spec/autotest/autotest_helper.rb +8 -0
- data/spec/autotest/autotest_matchers.rb +38 -0
- data/spec/autotest/discover_spec.rb +8 -0
- data/spec/autotest/failed_results_re_spec.rb +31 -0
- data/spec/autotest/rspec_spec.rb +126 -0
- data/spec/ruby_forker.rb +13 -0
- data/spec/spec/dsl/main_spec.rb +103 -0
- data/spec/spec/example/example_group_class_definition_spec.rb +51 -0
- data/spec/spec/example/example_group_factory_spec.rb +180 -0
- data/spec/spec/example/example_group_methods_spec.rb +778 -0
- data/spec/spec/example/example_group_proxy_spec.rb +107 -0
- data/spec/spec/example/example_group_spec.rb +632 -0
- data/spec/spec/example/example_matcher_spec.rb +85 -0
- data/spec/spec/example/example_methods_spec.rb +162 -0
- data/spec/spec/example/example_proxy_spec.rb +57 -0
- data/spec/spec/example/helper_method_spec.rb +24 -0
- data/spec/spec/{dsl/behaviour_eval_spec.rb → example/nested_example_group_spec.rb} +25 -3
- data/spec/spec/example/pending_module_spec.rb +58 -0
- data/spec/spec/example/predicate_matcher_spec.rb +41 -0
- data/spec/spec/example/shared_example_group_spec.rb +257 -0
- data/spec/spec/example/subclassing_example_group_spec.rb +25 -0
- data/spec/spec/example/subject_spec.rb +110 -0
- data/spec/spec/expectations/differs/default_spec.rb +100 -13
- data/spec/spec/expectations/extensions/{object_spec.rb → kernel_spec.rb} +13 -14
- data/spec/spec/expectations/fail_with_spec.rb +42 -17
- data/spec/spec/expectations/handler_spec.rb +206 -0
- data/spec/spec/expectations/wrap_expectation_spec.rb +31 -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/test_case_with_various_names.rb +22 -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 +48 -0
- data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +18 -0
- data/spec/spec/interop/test/unit/testcase_spec.rb +50 -0
- data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
- data/spec/spec/matchers/be_close_spec.rb +32 -21
- data/spec/spec/matchers/be_instance_of_spec.rb +36 -0
- data/spec/spec/matchers/be_kind_of_spec.rb +33 -0
- data/spec/spec/matchers/be_spec.rb +261 -10
- data/spec/spec/matchers/change_spec.rb +178 -61
- data/spec/spec/matchers/compatibility_spec.rb +28 -0
- data/spec/spec/matchers/description_generation_spec.rb +47 -46
- data/spec/spec/matchers/dsl_spec.rb +34 -0
- data/spec/spec/matchers/eql_spec.rb +14 -9
- data/spec/spec/matchers/equal_spec.rb +43 -14
- data/spec/spec/matchers/exist_spec.rb +41 -24
- data/spec/spec/matchers/has_spec.rb +154 -1
- data/spec/spec/matchers/have_spec.rb +311 -189
- data/spec/spec/matchers/include_spec.rb +45 -2
- data/spec/spec/matchers/match_array_spec.rb +115 -0
- data/spec/spec/matchers/match_spec.rb +25 -5
- data/spec/spec/matchers/matcher_spec.rb +289 -0
- data/spec/spec/matchers/matchers_spec.rb +2 -0
- data/spec/spec/matchers/operator_matcher_spec.rb +48 -15
- data/spec/spec/matchers/raise_exception_spec.rb +345 -0
- data/spec/spec/matchers/respond_to_spec.rb +78 -16
- data/spec/spec/matchers/satisfy_spec.rb +1 -1
- data/spec/spec/matchers/simple_matcher_spec.rb +100 -0
- data/spec/spec/matchers/throw_symbol_spec.rb +111 -41
- data/spec/spec/mocks/and_yield_spec.rb +117 -0
- data/spec/spec/mocks/any_number_of_times_spec.rb +9 -2
- data/spec/spec/mocks/argument_expectation_spec.rb +19 -15
- data/spec/spec/mocks/argument_matchers_spec.rb +19 -0
- data/spec/spec/mocks/at_least_spec.rb +2 -2
- data/spec/spec/mocks/at_most_spec.rb +3 -3
- data/spec/spec/mocks/bug_report_10260_spec.rb +1 -1
- data/spec/spec/mocks/bug_report_10263_spec.rb +27 -0
- data/spec/spec/mocks/bug_report_11545_spec.rb +32 -0
- data/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
- data/spec/spec/mocks/bug_report_496_spec.rb +17 -0
- data/spec/spec/mocks/bug_report_600_spec.rb +22 -0
- data/spec/spec/mocks/bug_report_7611_spec.rb +2 -2
- data/spec/spec/mocks/bug_report_7805_spec.rb +2 -2
- data/spec/spec/mocks/bug_report_8165_spec.rb +4 -4
- data/spec/spec/mocks/bug_report_8302_spec.rb +2 -2
- data/spec/spec/mocks/bug_report_830_spec.rb +21 -0
- data/spec/spec/mocks/double_spec.rb +12 -0
- data/spec/spec/mocks/failing_argument_matchers_spec.rb +95 -0
- data/spec/spec/mocks/hash_including_matcher_spec.rb +90 -0
- data/spec/spec/mocks/hash_not_including_matcher_spec.rb +67 -0
- data/spec/spec/mocks/mock_ordering_spec.rb +15 -5
- data/spec/spec/mocks/mock_space_spec.rb +1 -1
- data/spec/spec/mocks/mock_spec.rb +346 -129
- data/spec/spec/mocks/multiple_return_value_spec.rb +9 -9
- data/spec/spec/mocks/nil_expectation_warning_spec.rb +53 -0
- data/spec/spec/mocks/null_object_mock_spec.rb +15 -1
- data/spec/spec/mocks/once_counts_spec.rb +2 -2
- data/spec/spec/mocks/options_hash_spec.rb +19 -17
- data/spec/spec/mocks/partial_mock_spec.rb +124 -12
- data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +2 -2
- data/spec/spec/mocks/passing_argument_matchers_spec.rb +145 -0
- data/spec/spec/mocks/precise_counts_spec.rb +2 -2
- data/spec/spec/mocks/record_messages_spec.rb +2 -2
- data/spec/spec/mocks/stub_chain_spec.rb +42 -0
- data/spec/spec/mocks/stub_implementation_spec.rb +31 -0
- data/spec/spec/mocks/stub_spec.rb +147 -103
- data/spec/spec/mocks/stubbed_message_expectations_spec.rb +26 -0
- data/spec/spec/mocks/twice_counts_spec.rb +2 -2
- data/spec/spec/mocks/unstub_spec.rb +127 -0
- data/spec/spec/package/bin_spec_spec.rb +11 -7
- data/spec/spec/rake/spectask_spec.rb +150 -0
- data/spec/spec/runner/class_and_argument_parser_spec.rb +23 -0
- data/spec/spec/runner/command_line_spec.rb +158 -29
- data/spec/spec/runner/configuration_spec.rb +320 -0
- data/spec/spec/runner/drb_command_line_spec.rb +137 -72
- data/spec/spec/runner/empty_file.txt +0 -0
- data/spec/spec/runner/example_group_runner_spec.rb +26 -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 +30 -0
- data/spec/spec/runner/formatter/base_text_formatter_spec.rb +113 -0
- data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +45 -0
- data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +17 -12
- data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +377 -0
- data/spec/spec/runner/formatter/html_formatted-1.8.6.html +377 -0
- data/spec/spec/runner/formatter/html_formatted-1.8.7.html +377 -0
- data/spec/spec/runner/formatter/html_formatted-1.9.1.html +377 -0
- data/spec/spec/runner/formatter/html_formatter_spec.rb +112 -52
- data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +329 -0
- data/spec/spec/runner/formatter/profile_formatter_spec.rb +70 -0
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +87 -16
- data/spec/spec/runner/formatter/snippet_extractor_spec.rb +14 -7
- data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +153 -50
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +371 -0
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +371 -0
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +371 -0
- data/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +371 -0
- data/spec/spec/runner/formatter/text_mate_formatter_spec.rb +106 -0
- data/spec/spec/runner/heckle_runner_spec.rb +32 -17
- data/spec/spec/runner/heckler_spec.rb +17 -11
- data/spec/spec/runner/line_number_query/line_number_query_fixture.rb +70 -0
- data/spec/spec/runner/line_number_query_spec.rb +129 -0
- data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +27 -21
- data/spec/spec/runner/option_parser_spec.rb +367 -164
- data/spec/spec/runner/options_spec.rb +506 -94
- data/spec/spec/runner/output_one_time_fixture.rb +7 -0
- data/spec/spec/runner/output_one_time_fixture_runner.rb +7 -0
- data/spec/spec/runner/output_one_time_spec.rb +15 -0
- data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +94 -27
- data/spec/spec/runner/reporter_spec.rb +212 -121
- 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/resources/custom_example_group_runner.rb +14 -0
- data/spec/spec/runner/resources/utf8_encoded.rb +8 -0
- data/spec/spec/runner/spec.opts +2 -0
- data/spec/spec/runner/spec_drb.opts +2 -0
- data/spec/spec/runner/spec_spaced.opts +2 -0
- data/spec/spec/runner_spec.rb +13 -0
- data/spec/spec.opts +6 -0
- data/spec/spec_helper.rb +87 -45
- data/spec/support/macros.rb +29 -0
- data/spec/{spec → support}/spec_classes.rb +26 -4
- metadata +461 -141
- data/CHANGES +0 -748
- data/EXAMPLES.rd +0 -108
- data/README +0 -70
- data/UPGRADE +0 -31
- data/bin/spec_translator +0 -8
- data/examples/auto_spec_description_example.rb +0 -19
- data/examples/before_and_after_example.rb +0 -39
- data/examples/behave_as_example.rb +0 -45
- data/examples/dynamic_spec.rb +0 -9
- data/examples/helper_method_example.rb +0 -11
- data/examples/legacy_spec.rb +0 -10
- data/examples/not_yet_implemented_spec.rb +0 -12
- data/examples/priority.txt +0 -1
- data/examples/spec_helper.rb +0 -1
- data/examples/test_case_adapter_example.rb +0 -26
- data/examples/test_case_spec.rb +0 -65
- data/lib/spec/dsl/behaviour.rb +0 -204
- data/lib/spec/dsl/behaviour_callbacks.rb +0 -77
- data/lib/spec/dsl/behaviour_eval.rb +0 -177
- data/lib/spec/dsl/behaviour_factory.rb +0 -42
- data/lib/spec/dsl/composite_proc_builder.rb +0 -28
- data/lib/spec/dsl/configuration.rb +0 -119
- data/lib/spec/dsl/description.rb +0 -46
- data/lib/spec/dsl/example.rb +0 -127
- data/lib/spec/dsl/example_matcher.rb +0 -28
- data/lib/spec/dsl/example_should_raise_handler.rb +0 -74
- data/lib/spec/expectations/differs/default.rb +0 -61
- data/lib/spec/expectations/extensions/object.rb +0 -66
- data/lib/spec/expectations/extensions/string_and_symbol.rb +0 -17
- data/lib/spec/extensions/object.rb +0 -6
- data/lib/spec/extensions.rb +0 -1
- data/lib/spec/matchers/raise_error.rb +0 -100
- data/lib/spec/mocks/argument_constraint_matchers.rb +0 -12
- data/lib/spec/mocks/spec_methods.rb +0 -30
- data/lib/spec/runner/behaviour_runner.rb +0 -102
- data/lib/spec/runner/extensions/object.rb +0 -32
- data/lib/spec/runner/formatter/failing_behaviours_formatter.rb +0 -25
- data/lib/spec/runner/formatter/rdoc_formatter.rb +0 -24
- data/lib/spec/runner/formatter.rb +0 -9
- data/lib/spec/runner/spec_parser.rb +0 -50
- data/lib/spec/test_case_adapter.rb +0 -10
- data/lib/spec/translator.rb +0 -106
- data/plugins/mock_frameworks/flexmock.rb +0 -27
- data/plugins/mock_frameworks/rspec.rb +0 -18
- data/spec/spec/dsl/behaviour_factory_spec.rb +0 -30
- data/spec/spec/dsl/behaviour_spec.rb +0 -604
- data/spec/spec/dsl/composite_proc_builder_spec.rb +0 -57
- data/spec/spec/dsl/configuration_spec.rb +0 -50
- data/spec/spec/dsl/description_spec.rb +0 -81
- data/spec/spec/dsl/example_class_spec.rb +0 -24
- data/spec/spec/dsl/example_instance_spec.rb +0 -162
- data/spec/spec/dsl/example_should_raise_spec.rb +0 -137
- data/spec/spec/dsl/predicate_matcher_spec.rb +0 -21
- data/spec/spec/dsl/shared_behaviour_spec.rb +0 -208
- data/spec/spec/matchers/handler_spec.rb +0 -88
- data/spec/spec/matchers/matcher_methods_spec.rb +0 -78
- data/spec/spec/matchers/raise_error_spec.rb +0 -147
- data/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +0 -73
- data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +0 -92
- data/spec/spec/runner/behaviour_runner_spec.rb +0 -118
- data/spec/spec/runner/context_matching_spec.rb +0 -27
- data/spec/spec/runner/execution_context_spec.rb +0 -31
- data/spec/spec/runner/extensions/kernel_spec.rb +0 -36
- data/spec/spec/runner/formatter/failing_behaviours_formatter_spec.rb +0 -27
- data/spec/spec/runner/formatter/progress_bar_formatter_dry_run_spec.rb +0 -21
- data/spec/spec/runner/formatter/progress_bar_formatter_failure_dump_spec.rb +0 -36
- data/spec/spec/runner/formatter/rdoc_formatter_dry_run_spec.rb +0 -19
- data/spec/spec/runner/formatter/rdoc_formatter_spec.rb +0 -46
- data/spec/spec/runner/formatter/specdoc_formatter_dry_run_spec.rb +0 -21
- data/spec/spec/runner/object_ext_spec.rb +0 -11
- data/spec/spec/runner/spec_matcher_spec.rb +0 -102
- data/spec/spec/runner/spec_parser_spec.rb +0 -93
- data/spec/spec/translator_spec.rb +0 -216
- /data/examples/{custom_expectation_matchers.rb → passing/custom_matchers.rb} +0 -0
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
|
2
|
-
|
|
3
|
-
module Spec
|
|
4
|
-
module DSL
|
|
5
|
-
describe Configuration do
|
|
6
|
-
before(:each) do
|
|
7
|
-
@config = Configuration.new
|
|
8
|
-
@behaviour = mock("behaviour")
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
it "should default mock framework to rspec" do
|
|
12
|
-
@config.mock_framework.should =~ /\/plugins\/mock_frameworks\/rspec$/
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
it "should let you set rspec mocking explicitly" do
|
|
16
|
-
@config.mock_with(:rspec)
|
|
17
|
-
@config.mock_framework.should =~ /\/plugins\/mock_frameworks\/rspec$/
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
it "should let you set mocha" do
|
|
21
|
-
@config.mock_with(:mocha)
|
|
22
|
-
@config.mock_framework.should =~ /\/plugins\/mock_frameworks\/mocha$/
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
it "should let you set flexmock" do
|
|
26
|
-
@config.mock_with(:flexmock)
|
|
27
|
-
@config.mock_framework.should =~ /\/plugins\/mock_frameworks\/flexmock$/
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
it "should let you set an arbitrary adapter module" do
|
|
31
|
-
adapter = Module.new
|
|
32
|
-
@config.mock_with(adapter)
|
|
33
|
-
@config.mock_framework.should == adapter
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
it "should let you define modules to be included" do
|
|
37
|
-
mod = Module.new
|
|
38
|
-
@config.include mod
|
|
39
|
-
@config.included_modules.should include(mod)
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
[:prepend_before, :append_before, :prepend_after, :append_after].each do |m|
|
|
43
|
-
it "should delegate ##{m} to Behaviour class" do
|
|
44
|
-
Behaviour.should_receive(m).with(:whatever)
|
|
45
|
-
@config.__send__(m, :whatever)
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
end
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/../../spec_helper'
|
|
2
|
-
|
|
3
|
-
module Spec
|
|
4
|
-
module DSL
|
|
5
|
-
describe Description, " constructed with a single String" do
|
|
6
|
-
before(:each) {@description = Description.new("abc")}
|
|
7
|
-
|
|
8
|
-
it "should provide that string as its name" do
|
|
9
|
-
@description.description.should == "abc"
|
|
10
|
-
end
|
|
11
|
-
it "should provide nil as its type" do
|
|
12
|
-
@description.described_type.should be_nil
|
|
13
|
-
end
|
|
14
|
-
it "should respond to []" do
|
|
15
|
-
@description[:key].should be_nil
|
|
16
|
-
end
|
|
17
|
-
it "should respond to []=" do
|
|
18
|
-
@description[:key] = :value
|
|
19
|
-
@description[:key].should == :value
|
|
20
|
-
end
|
|
21
|
-
it "should return for == when value matches description" do
|
|
22
|
-
@description.should == "abc"
|
|
23
|
-
end
|
|
24
|
-
it "should return for == when value is other description that matches description" do
|
|
25
|
-
@description.should == Description.new("abc")
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
describe Description, " constructed with a Type" do
|
|
30
|
-
before(:each) {@description = Description.new(Behaviour)}
|
|
31
|
-
|
|
32
|
-
it "should provide a String representation of that type (fully qualified) as its name" do
|
|
33
|
-
@description.description.should == "Spec::DSL::Behaviour"
|
|
34
|
-
end
|
|
35
|
-
it "should provide that type (fully qualified) as its type" do
|
|
36
|
-
@description.described_type.should == Spec::DSL::Behaviour
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
describe Description, " constructed with a Type and a String" do
|
|
41
|
-
before(:each) {@description = Description.new(Behaviour, " behaving")}
|
|
42
|
-
|
|
43
|
-
it "should include the type and second String in its name" do
|
|
44
|
-
@description.description.should == "Spec::DSL::Behaviour behaving"
|
|
45
|
-
end
|
|
46
|
-
it "should provide that type (fully qualified) as its type" do
|
|
47
|
-
@description.described_type.should == Spec::DSL::Behaviour
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
describe Description, "constructed with a Type and a String not starting with a space" do
|
|
52
|
-
before(:each) {@description = Description.new(Behaviour, "behaving")}
|
|
53
|
-
|
|
54
|
-
it "should include the type and second String with a space in its name" do
|
|
55
|
-
@description.description.should == "Spec::DSL::Behaviour behaving"
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
describe Description, "constructed with a Type and a String starting with a ." do
|
|
60
|
-
before(:each) {@description = Description.new(Behaviour, ".behaving")}
|
|
61
|
-
|
|
62
|
-
it "should include the type and second String with a space in its name" do
|
|
63
|
-
@description.description.should == "Spec::DSL::Behaviour.behaving"
|
|
64
|
-
end
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
describe Description, "constructed with a Type and a String starting with a #" do
|
|
68
|
-
before(:each) {@description = Description.new(Behaviour, "#behaving")}
|
|
69
|
-
|
|
70
|
-
it "should include the type and second String with a space in its name" do
|
|
71
|
-
@description.description.should == "Spec::DSL::Behaviour#behaving"
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
describe Description, " constructed with options" do before(:each) {@description = Description.new(Behaviour, :a => "b")}
|
|
76
|
-
it "should provide its options" do
|
|
77
|
-
@description[:a].should == "b"
|
|
78
|
-
end
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
end
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
|
2
|
-
|
|
3
|
-
module Spec
|
|
4
|
-
module DSL
|
|
5
|
-
describe Example, " class" do
|
|
6
|
-
|
|
7
|
-
def run(example)
|
|
8
|
-
example.run(@reporter, nil, nil, nil, Object.new)
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
before do
|
|
12
|
-
@reporter = stub("reporter", :example_started => nil, :example_finished => nil)
|
|
13
|
-
@example_class = Example.dup
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
it "should report errors in example" do
|
|
17
|
-
error = Exception.new
|
|
18
|
-
@reporter.should_receive(:example_finished).with("example", error, "example", false)
|
|
19
|
-
|
|
20
|
-
run(@example_class.new("example") {raise(error)})
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
|
2
|
-
|
|
3
|
-
module Spec
|
|
4
|
-
module DSL
|
|
5
|
-
describe Example, " instance" do
|
|
6
|
-
# TODO - this should be
|
|
7
|
-
# predicate_matchers :is_a
|
|
8
|
-
def is_a(error)
|
|
9
|
-
be_is_a(error)
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
before do
|
|
13
|
-
@reporter = stub("reporter", :example_started => nil, :example_finished => nil)
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
it "should send reporter example_started" do
|
|
17
|
-
example=Example.new("example") {}
|
|
18
|
-
@reporter.should_receive(:example_started).with("example")
|
|
19
|
-
example.run(@reporter, nil, nil, false, nil)
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
it "should report its name for dry run" do
|
|
23
|
-
example=Example.new("example") {}
|
|
24
|
-
@reporter.should_receive(:example_finished).with("example")
|
|
25
|
-
example.run(@reporter, nil, nil, true, nil) #4th arg indicates dry run
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
it "should report success" do
|
|
29
|
-
example=Example.new("example") {}
|
|
30
|
-
@reporter.should_receive(:example_finished).with("example", nil, nil, false)
|
|
31
|
-
example.run(@reporter, nil, nil, nil, nil)
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
it "should report failure due to failure" do
|
|
35
|
-
example=Example.new("example") do
|
|
36
|
-
(2+2).should == 5
|
|
37
|
-
end
|
|
38
|
-
@reporter.should_receive(:example_finished).with("example", is_a(Spec::Expectations::ExpectationNotMetError), "example", false)
|
|
39
|
-
example.run(@reporter, nil, nil, nil, nil)
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
it "should report failure due to error" do
|
|
43
|
-
error=RuntimeError.new
|
|
44
|
-
example=Example.new("example") do
|
|
45
|
-
raise(error)
|
|
46
|
-
end
|
|
47
|
-
@reporter.should_receive(:example_finished).with("example", error, "example", false)
|
|
48
|
-
example.run(@reporter, nil, nil, nil, nil)
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
it "should run example in scope of supplied object" do
|
|
52
|
-
scope_class = Class.new
|
|
53
|
-
example=Example.new("should pass") do
|
|
54
|
-
self.instance_of?(Example).should == false
|
|
55
|
-
self.instance_of?(scope_class).should == true
|
|
56
|
-
end
|
|
57
|
-
@reporter.should_receive(:example_finished).with("should pass", nil, nil, false)
|
|
58
|
-
example.run(@reporter, nil, nil, nil, scope_class.new)
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
it "should not run example block if before_each fails" do
|
|
62
|
-
example_ran = false
|
|
63
|
-
example=Example.new("should pass") {example_ran = true}
|
|
64
|
-
before_each = lambda {raise "Setup error"}
|
|
65
|
-
example.run(@reporter, before_each, nil, nil, Object.new)
|
|
66
|
-
example_ran.should == false
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
it "should run after_each block if before_each fails" do
|
|
70
|
-
after_each_ran = false
|
|
71
|
-
example=Example.new("should pass") {}
|
|
72
|
-
before_each = lambda {raise "Setup error"}
|
|
73
|
-
after_each = lambda {after_each_ran = true}
|
|
74
|
-
example.run(@reporter, before_each, after_each, nil, Object.new)
|
|
75
|
-
after_each_ran.should == true
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
it "should run after_each block when example fails" do
|
|
79
|
-
example=Example.new("example") do
|
|
80
|
-
raise("in body")
|
|
81
|
-
end
|
|
82
|
-
after_each=lambda do
|
|
83
|
-
raise("in after_each")
|
|
84
|
-
end
|
|
85
|
-
@reporter.should_receive(:example_finished) do |example, error, location|
|
|
86
|
-
example.should eql("example")
|
|
87
|
-
location.should eql("example")
|
|
88
|
-
error.message.should eql("in body")
|
|
89
|
-
end
|
|
90
|
-
example.run(@reporter, nil, after_each, nil, nil)
|
|
91
|
-
end
|
|
92
|
-
|
|
93
|
-
it "should report failure location when in before_each" do
|
|
94
|
-
example=Example.new("example") {}
|
|
95
|
-
before_each=lambda { raise("in before_each") }
|
|
96
|
-
@reporter.should_receive(:example_finished) do |name, error, location|
|
|
97
|
-
name.should eql("example")
|
|
98
|
-
error.message.should eql("in before_each")
|
|
99
|
-
location.should eql("before(:each)")
|
|
100
|
-
end
|
|
101
|
-
example.run(@reporter, before_each, nil, nil, nil)
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
it "should report failure location when in after_each" do
|
|
105
|
-
example = Example.new("example") {}
|
|
106
|
-
after_each = lambda { raise("in after_each") }
|
|
107
|
-
@reporter.should_receive(:example_finished) do |name, error, location|
|
|
108
|
-
name.should eql("example")
|
|
109
|
-
error.message.should eql("in after_each")
|
|
110
|
-
location.should eql("after(:each)")
|
|
111
|
-
end
|
|
112
|
-
example.run(@reporter, nil, after_each, nil, nil)
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
it "should accept an options hash following the example name" do
|
|
116
|
-
example = Example.new("name", :key => 'value')
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
it "should report NO NAME when told to use generated description with --dry-run" do
|
|
120
|
-
example = Example.new(:__generate_description) {
|
|
121
|
-
5.should == 5
|
|
122
|
-
}
|
|
123
|
-
@reporter.should_receive(:example_finished) do |desc, error, location|
|
|
124
|
-
desc.should == "NO NAME (Because of --dry-run)"
|
|
125
|
-
end
|
|
126
|
-
example.run(@reporter, lambda{}, lambda{}, true, Object.new)
|
|
127
|
-
end
|
|
128
|
-
|
|
129
|
-
it "should report NO NAME when told to use generated description with no expectations" do
|
|
130
|
-
example = Example.new(:__generate_description) {}
|
|
131
|
-
@reporter.should_receive(:example_finished) do |desc, error, location|
|
|
132
|
-
desc.should == "NO NAME (Because there were no expectations)"
|
|
133
|
-
end
|
|
134
|
-
example.run(@reporter, lambda{}, lambda{}, false, Object.new)
|
|
135
|
-
end
|
|
136
|
-
|
|
137
|
-
it "should report NO NAME when told to use generated description and matcher fails" do
|
|
138
|
-
example = Example.new(:__generate_description) do
|
|
139
|
-
5.should "" # Has no matches? method..
|
|
140
|
-
end
|
|
141
|
-
@reporter.should_receive(:example_finished) do |desc, error, location|
|
|
142
|
-
desc.should == "NO NAME (Because of Error raised in matcher)"
|
|
143
|
-
end
|
|
144
|
-
example.run(@reporter, nil, nil, nil, Object.new)
|
|
145
|
-
end
|
|
146
|
-
|
|
147
|
-
it "should report generated description when told to and it is available" do
|
|
148
|
-
example = Example.new(:__generate_description) {
|
|
149
|
-
5.should == 5
|
|
150
|
-
}
|
|
151
|
-
@reporter.should_receive(:example_finished).with("should == 5", :anything, :anything, false)
|
|
152
|
-
example.run(@reporter, nil, nil, nil, Object.new)
|
|
153
|
-
end
|
|
154
|
-
|
|
155
|
-
it "should unregister description_generated callback (lest a memory leak should build up)" do
|
|
156
|
-
example = Example.new("something")
|
|
157
|
-
Spec::Matchers.should_receive(:unregister_description_generated).with(is_a(Proc))
|
|
158
|
-
example.run(@reporter, nil, nil, nil, Object.new)
|
|
159
|
-
end
|
|
160
|
-
end
|
|
161
|
-
end
|
|
162
|
-
end
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
|
2
|
-
|
|
3
|
-
module Spec
|
|
4
|
-
module DSL
|
|
5
|
-
describe Example, " declared with {:should_raise => ...}" do
|
|
6
|
-
before(:each) do
|
|
7
|
-
@reporter = mock("reporter")
|
|
8
|
-
@reporter.stub!(:example_started)
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def verify_error(error, message=nil)
|
|
12
|
-
error.should be_an_instance_of(Spec::Expectations::ExpectationNotMetError)
|
|
13
|
-
unless message.nil?
|
|
14
|
-
return error.message.should =~ message if Regexp === message
|
|
15
|
-
return error.message.should == message
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
it "true} should pass when there is an ExpectationNotMetError" do
|
|
20
|
-
example = Spec::DSL:: Example.new("example", :should_raise => true) do
|
|
21
|
-
raise Spec::Expectations::ExpectationNotMetError
|
|
22
|
-
end
|
|
23
|
-
@reporter.should_receive(:example_finished) do |description, error|
|
|
24
|
-
error.should be_nil
|
|
25
|
-
end
|
|
26
|
-
example.run(@reporter, nil, nil, nil, nil)
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
it "true} should fail if nothing is raised" do
|
|
30
|
-
example = Spec::DSL:: Example.new("example", :should_raise => true) {}
|
|
31
|
-
@reporter.should_receive(:example_finished) do |example_name, error|
|
|
32
|
-
verify_error(error, /example block expected Exception but nothing was raised/)
|
|
33
|
-
end
|
|
34
|
-
example.run(@reporter, nil, nil, nil, nil)
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
it "NameError} should pass when there is a NameError" do
|
|
38
|
-
example = Spec::DSL:: Example.new("example", :should_raise => NameError) do
|
|
39
|
-
raise NameError
|
|
40
|
-
end
|
|
41
|
-
@reporter.should_receive(:example_finished) do |example_name, error|
|
|
42
|
-
error.should be_nil
|
|
43
|
-
end
|
|
44
|
-
example.run(@reporter, nil, nil, nil, nil)
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
it "NameError} should fail when there is no error" do
|
|
48
|
-
example = Spec::DSL:: Example.new("example", :should_raise => NameError) do
|
|
49
|
-
#do nothing
|
|
50
|
-
end
|
|
51
|
-
@reporter.should_receive(:example_finished) do |example_name, error|
|
|
52
|
-
verify_error(error,/example block expected NameError but nothing was raised/)
|
|
53
|
-
end
|
|
54
|
-
example.run(@reporter, nil, nil, nil, nil)
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
it "NameError} should fail when there is the wrong error" do
|
|
58
|
-
example = Spec::DSL:: Example.new("example", :should_raise => NameError) do
|
|
59
|
-
raise RuntimeError
|
|
60
|
-
end
|
|
61
|
-
@reporter.should_receive(:example_finished) do |example_name, error|
|
|
62
|
-
verify_error(error, /example block expected NameError but raised.+RuntimeError/)
|
|
63
|
-
end
|
|
64
|
-
example.run(@reporter, nil, nil, nil, nil)
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
it "[NameError]} should pass when there is a NameError" do
|
|
68
|
-
example = Spec::DSL:: Example.new("spec", :should_raise => [NameError]) do
|
|
69
|
-
raise NameError
|
|
70
|
-
end
|
|
71
|
-
@reporter.should_receive(:example_finished) do |description, error|
|
|
72
|
-
error.should be_nil
|
|
73
|
-
end
|
|
74
|
-
example.run(@reporter, nil, nil, nil, nil)
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
it "[NameError]} should fail when there is no error" do
|
|
78
|
-
example = Spec::DSL:: Example.new("spec", :should_raise => [NameError]) do
|
|
79
|
-
end
|
|
80
|
-
@reporter.should_receive(:example_finished) do |description, error|
|
|
81
|
-
verify_error(error, /example block expected NameError but nothing was raised/)
|
|
82
|
-
end
|
|
83
|
-
example.run(@reporter, nil, nil, nil, nil)
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
it "[NameError]} should fail when there is the wrong error" do
|
|
87
|
-
example = Spec::DSL:: Example.new("spec", :should_raise => [NameError]) do
|
|
88
|
-
raise RuntimeError
|
|
89
|
-
end
|
|
90
|
-
@reporter.should_receive(:example_finished) do |description, error|
|
|
91
|
-
verify_error(error, /example block expected NameError but raised.+RuntimeError/)
|
|
92
|
-
end
|
|
93
|
-
example.run(@reporter, nil, nil, nil, nil)
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
it "[NameError, 'message'} should pass when there is a NameError with the right message" do
|
|
97
|
-
example = Spec::DSL:: Example.new("spec", :should_raise => [NameError, 'expected']) do
|
|
98
|
-
raise NameError, 'expected'
|
|
99
|
-
end
|
|
100
|
-
@reporter.should_receive(:example_finished) do |description, error|
|
|
101
|
-
error.should be_nil
|
|
102
|
-
end
|
|
103
|
-
example.run(@reporter, nil, nil, nil, nil)
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
it "[NameError, 'message'} should pass when there is a NameError with a message matching a regex" do
|
|
107
|
-
example = Spec::DSL:: Example.new("spec", :should_raise => [NameError, /xpec/]) do
|
|
108
|
-
raise NameError, 'expected'
|
|
109
|
-
end
|
|
110
|
-
@reporter.should_receive(:example_finished) do |description, error|
|
|
111
|
-
error.should be_nil
|
|
112
|
-
end
|
|
113
|
-
example.run(@reporter, nil, nil, nil, nil)
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
it "[NameError, 'message'} should fail when there is a NameError with the wrong message" do
|
|
117
|
-
example = Spec::DSL:: Example.new("spec", :should_raise => [NameError, 'expected']) do
|
|
118
|
-
raise NameError, 'wrong message'
|
|
119
|
-
end
|
|
120
|
-
@reporter.should_receive(:example_finished) do |description, error|
|
|
121
|
-
verify_error(error, /example block expected #<NameError: expected> but raised #<NameError: wrong message>/)
|
|
122
|
-
end
|
|
123
|
-
example.run(@reporter, nil, nil, nil, nil)
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
it "[NameError, 'message'} should fail when there is a NameError with a message not matching regexp" do
|
|
127
|
-
example = Spec::DSL:: Example.new("spec", :should_raise => [NameError, /exp/]) do
|
|
128
|
-
raise NameError, 'wrong message'
|
|
129
|
-
end
|
|
130
|
-
@reporter.should_receive(:example_finished) do |description, error|
|
|
131
|
-
verify_error(error, /example block expected #<NameError: \(\?-mix:exp\)> but raised #<NameError: wrong message>/)
|
|
132
|
-
end
|
|
133
|
-
example.run(@reporter, nil, nil, nil, nil)
|
|
134
|
-
end
|
|
135
|
-
end
|
|
136
|
-
end
|
|
137
|
-
end
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/../../spec_helper'
|
|
2
|
-
|
|
3
|
-
module Spec
|
|
4
|
-
module DSL
|
|
5
|
-
class Fish
|
|
6
|
-
def can_swim?(distance_in_yards)
|
|
7
|
-
distance_in_yards < 1000
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
describe "predicate_matcher[method_on_object] = matcher_method" do
|
|
12
|
-
predicate_matchers[:swim] = :can_swim?
|
|
13
|
-
it "should match matcher_method if method_on_object returns true" do
|
|
14
|
-
swim(100).matches?(Fish.new).should be_true
|
|
15
|
-
end
|
|
16
|
-
it "should not match matcher_method if method_on_object returns false" do
|
|
17
|
-
swim(10000).matches?(Fish.new).should be_false
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/../../spec_helper'
|
|
2
|
-
|
|
3
|
-
module Spec
|
|
4
|
-
module DSL
|
|
5
|
-
describe Behaviour, ", with :shared => true" do
|
|
6
|
-
|
|
7
|
-
before do
|
|
8
|
-
@formatter = Spec::Mocks::Mock.new("formatter", :null_object => true)
|
|
9
|
-
@behaviour = behaviour_class.new("behaviour") {}
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
after do
|
|
13
|
-
@formatter.rspec_verify
|
|
14
|
-
@behaviour_class = nil
|
|
15
|
-
$shared_behaviours.clear unless $shared_behaviours.nil?
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def behaviour_class
|
|
19
|
-
unless @behaviour_class
|
|
20
|
-
@behaviour_class = Behaviour.dup
|
|
21
|
-
# dup copies the class instance vars
|
|
22
|
-
@behaviour_class.instance_variable_set(:@shared_behaviours, nil)
|
|
23
|
-
end
|
|
24
|
-
@behaviour_class
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def make_shared_behaviour(name, opts, &block)
|
|
28
|
-
behaviour = behaviour_class.new(name, opts, &block)
|
|
29
|
-
behaviour_class.add_shared_behaviour(behaviour)
|
|
30
|
-
behaviour
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
it "should accept an optional options hash" do
|
|
34
|
-
lambda { behaviour_class.new("context") {} }.should_not raise_error(Exception)
|
|
35
|
-
lambda { behaviour_class.new("context", :shared => true) {} }.should_not raise_error(Exception)
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
it "should return all shared behaviours" do
|
|
39
|
-
make_shared_behaviour("b1", :shared => true) {}
|
|
40
|
-
make_shared_behaviour("b2", :shared => true) {}
|
|
41
|
-
|
|
42
|
-
behaviour_class.find_shared_behaviour("b1").should_not be_nil
|
|
43
|
-
behaviour_class.find_shared_behaviour("b2").should_not be_nil
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
it "should be shared when configured as shared" do
|
|
47
|
-
behaviour = make_shared_behaviour("context", :shared => true) {}
|
|
48
|
-
behaviour.should be_shared
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
it "should not be shared when not configured as shared" do
|
|
52
|
-
@behaviour.should_not be_shared
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
it "should raise if run when shared" do
|
|
56
|
-
behaviour = make_shared_behaviour("context", :shared => true) {}
|
|
57
|
-
$spec_ran = false
|
|
58
|
-
behaviour.it("test") {$spec_ran = true}
|
|
59
|
-
lambda { behaviour.run(@formatter) }.should raise_error
|
|
60
|
-
$spec_ran.should be_false
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
it "should contain examples when shared" do
|
|
64
|
-
shared_behaviour = make_shared_behaviour("shared behaviour", :shared => true) {}
|
|
65
|
-
shared_behaviour.it("shared example") {}
|
|
66
|
-
shared_behaviour.number_of_examples.should == 1
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
it "should complain when adding a second shared behaviour with the same description" do
|
|
70
|
-
make_shared_behaviour("shared behaviour", :shared => true) {}
|
|
71
|
-
lambda { make_shared_behaviour("shared behaviour", :shared => true) {} }.should raise_error(ArgumentError)
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
it "should NOT complain when adding a the same shared behaviour again (i.e. file gets reloaded)" do
|
|
75
|
-
behaviour = behaviour_class.new("shared behaviour", :shared => true) {}
|
|
76
|
-
behaviour_class.add_shared_behaviour(behaviour)
|
|
77
|
-
behaviour_class.add_shared_behaviour(behaviour)
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
it "should add examples to current behaviour when calling it_should_behave_like" do
|
|
81
|
-
shared_behaviour = make_shared_behaviour("shared behaviour", :shared => true) {}
|
|
82
|
-
shared_behaviour.it("shared example") {}
|
|
83
|
-
shared_behaviour.it("shared example 2") {}
|
|
84
|
-
|
|
85
|
-
@behaviour.it("example") {}
|
|
86
|
-
@behaviour.number_of_examples.should == 1
|
|
87
|
-
@behaviour.it_should_behave_like("shared behaviour")
|
|
88
|
-
@behaviour.number_of_examples.should == 3
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
it "should run shared examples" do
|
|
92
|
-
shared_example_ran = false
|
|
93
|
-
shared_behaviour = make_shared_behaviour("shared behaviour", :shared => true) {}
|
|
94
|
-
shared_behaviour.it("shared example") { shared_example_ran = true }
|
|
95
|
-
|
|
96
|
-
example_ran = false
|
|
97
|
-
|
|
98
|
-
@behaviour.it_should_behave_like("shared behaviour")
|
|
99
|
-
@behaviour.it("example") {example_ran = true}
|
|
100
|
-
@behaviour.run(@formatter)
|
|
101
|
-
example_ran.should be_true
|
|
102
|
-
shared_example_ran.should be_true
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
it "should run setup and teardown from shared behaviour" do
|
|
106
|
-
shared_setup_ran = false
|
|
107
|
-
shared_teardown_ran = false
|
|
108
|
-
shared_behaviour = make_shared_behaviour("shared behaviour", :shared => true) {}
|
|
109
|
-
shared_behaviour.before { shared_setup_ran = true }
|
|
110
|
-
shared_behaviour.after { shared_teardown_ran = true }
|
|
111
|
-
shared_behaviour.it("shared example") { shared_example_ran = true }
|
|
112
|
-
|
|
113
|
-
example_ran = false
|
|
114
|
-
|
|
115
|
-
@behaviour.it_should_behave_like("shared behaviour")
|
|
116
|
-
@behaviour.it("example") {example_ran = true}
|
|
117
|
-
@behaviour.run(@formatter)
|
|
118
|
-
example_ran.should be_true
|
|
119
|
-
shared_setup_ran.should be_true
|
|
120
|
-
shared_teardown_ran.should be_true
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
it "should run before(:all) and after(:all) only once from shared behaviour" do
|
|
124
|
-
shared_before_all_run_count = 0
|
|
125
|
-
shared_after_all_run_count = 0
|
|
126
|
-
shared_behaviour = make_shared_behaviour("shared behaviour", :shared => true) {}
|
|
127
|
-
shared_behaviour.before(:all) { shared_before_all_run_count += 1}
|
|
128
|
-
shared_behaviour.after(:all) { shared_after_all_run_count += 1}
|
|
129
|
-
shared_behaviour.it("shared example") { shared_example_ran = true }
|
|
130
|
-
|
|
131
|
-
example_ran = false
|
|
132
|
-
|
|
133
|
-
@behaviour.it_should_behave_like("shared behaviour")
|
|
134
|
-
@behaviour.it("example") {example_ran = true}
|
|
135
|
-
@behaviour.run(@formatter)
|
|
136
|
-
example_ran.should be_true
|
|
137
|
-
shared_before_all_run_count.should == 1
|
|
138
|
-
shared_after_all_run_count.should == 1
|
|
139
|
-
end
|
|
140
|
-
|
|
141
|
-
it "should include modules, included into shared behaviour, into current behaviour" do
|
|
142
|
-
@formatter.should_receive(:add_behaviour).with :any_args
|
|
143
|
-
@formatter.should_receive(:example_finished).twice.with :any_args
|
|
144
|
-
|
|
145
|
-
shared_behaviour = make_shared_behaviour("shared behaviour", :shared => true) {}
|
|
146
|
-
shared_behaviour.it("shared example") { shared_example_ran = true }
|
|
147
|
-
|
|
148
|
-
mod1_method_called = false
|
|
149
|
-
mod1 = Module.new do
|
|
150
|
-
define_method :mod1_method do
|
|
151
|
-
mod1_method_called = true
|
|
152
|
-
end
|
|
153
|
-
end
|
|
154
|
-
|
|
155
|
-
mod2_method_called = false
|
|
156
|
-
mod2 = Module.new do
|
|
157
|
-
define_method :mod2_method do
|
|
158
|
-
mod2_method_called = true
|
|
159
|
-
end
|
|
160
|
-
end
|
|
161
|
-
|
|
162
|
-
shared_behaviour.include mod2
|
|
163
|
-
|
|
164
|
-
@behaviour.it_should_behave_like("shared behaviour")
|
|
165
|
-
@behaviour.include mod1
|
|
166
|
-
|
|
167
|
-
@behaviour.it("test") do
|
|
168
|
-
mod1_method
|
|
169
|
-
mod2_method
|
|
170
|
-
end
|
|
171
|
-
@behaviour.run(@formatter)
|
|
172
|
-
mod1_method_called.should be_true
|
|
173
|
-
mod2_method_called.should be_true
|
|
174
|
-
end
|
|
175
|
-
|
|
176
|
-
it "should make methods defined in the shared behaviour available in consuming behaviour" do
|
|
177
|
-
shared_behaviour = make_shared_behaviour("shared behaviour xyz", :shared => true) do
|
|
178
|
-
def a_shared_helper_method
|
|
179
|
-
"this got defined in a shared behaviour"
|
|
180
|
-
end
|
|
181
|
-
end
|
|
182
|
-
@behaviour.it_should_behave_like("shared behaviour xyz")
|
|
183
|
-
success = false
|
|
184
|
-
@behaviour.it("should access a_shared_helper_method") do
|
|
185
|
-
a_shared_helper_method
|
|
186
|
-
success = true
|
|
187
|
-
end
|
|
188
|
-
@behaviour.run(@formatter)
|
|
189
|
-
success.should be_true
|
|
190
|
-
end
|
|
191
|
-
|
|
192
|
-
it "should error if told to inherit from a class" do
|
|
193
|
-
shared_behaviour = make_shared_behaviour("shared behaviour", :shared => true) {}
|
|
194
|
-
shared_behaviour.it("shared example") { shared_example_ran = true }
|
|
195
|
-
lambda { shared_behaviour.inherit Object }.should raise_error(ArgumentError)
|
|
196
|
-
end
|
|
197
|
-
|
|
198
|
-
it "should raise when named shared behaviour can not be found" do
|
|
199
|
-
begin
|
|
200
|
-
@behaviour.it_should_behave_like("non-existent shared behaviour")
|
|
201
|
-
violated
|
|
202
|
-
rescue => e
|
|
203
|
-
e.message.should == "Shared Behaviour 'non-existent shared behaviour' can not be found"
|
|
204
|
-
end
|
|
205
|
-
end
|
|
206
|
-
end
|
|
207
|
-
end
|
|
208
|
-
end
|