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
data/EXAMPLES.rd
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
# Examples with no descriptions
|
|
2
|
-
# * should equal 5
|
|
3
|
-
# * should be < 5
|
|
4
|
-
# * should include "a"
|
|
5
|
-
# * should respond to #size
|
|
6
|
-
# State created in before(:all)
|
|
7
|
-
# * should be accessible from example
|
|
8
|
-
# * should not have sideffects
|
|
9
|
-
# BehaveAsExample::BluesGuitarist
|
|
10
|
-
# * should behave as guitarist
|
|
11
|
-
# BehaveAsExample::RockGuitarist
|
|
12
|
-
# * should behave as guitarist
|
|
13
|
-
# BehaveAsExample::ClassicGuitarist
|
|
14
|
-
# * should not behave as guitarist
|
|
15
|
-
# Animals::Mouse
|
|
16
|
-
# * should eat cheese
|
|
17
|
-
# * should not eat cat
|
|
18
|
-
# Some integers
|
|
19
|
-
# * The root of 1 square should be 1
|
|
20
|
-
# * The root of 2 square should be 2
|
|
21
|
-
# * The root of 3 square should be 3
|
|
22
|
-
# * The root of 4 square should be 4
|
|
23
|
-
# * The root of 5 square should be 5
|
|
24
|
-
# * The root of 6 square should be 6
|
|
25
|
-
# * The root of 7 square should be 7
|
|
26
|
-
# * The root of 8 square should be 8
|
|
27
|
-
# * The root of 9 square should be 9
|
|
28
|
-
# * The root of 10 square should be 10
|
|
29
|
-
# A FileAccessor
|
|
30
|
-
# * should open a file and pass it to the processor's process method
|
|
31
|
-
# Greeter
|
|
32
|
-
# * should say Hi to person
|
|
33
|
-
# * should say Hi to nobody
|
|
34
|
-
# a context with helper a method
|
|
35
|
-
# * should make that method available to specs
|
|
36
|
-
# An IoProcessor
|
|
37
|
-
# * should raise nothing when the file is exactly 32 bytes
|
|
38
|
-
# * should raise an exception when the file length is less than 32 bytes
|
|
39
|
-
# A legacy spec
|
|
40
|
-
# * should work fine
|
|
41
|
-
# A consumer of a mock
|
|
42
|
-
# * should be able to send messages to the mock
|
|
43
|
-
# a mock
|
|
44
|
-
# * should be able to mock the same message twice w/ different args
|
|
45
|
-
# * should be able to mock the same message twice w/ different args in reverse order
|
|
46
|
-
# Stack (not implemented features)
|
|
47
|
-
# * should transform to xml using #to_xml [NOT IMPLEMENTED]
|
|
48
|
-
# * should convert from xml using #from_xml [NOT IMPLEMENTED]
|
|
49
|
-
# A partial mock
|
|
50
|
-
# * should work at the class level
|
|
51
|
-
# * should revert to the original after each spec
|
|
52
|
-
# * can be mocked w/ ordering
|
|
53
|
-
# BDD framework
|
|
54
|
-
# * should be adopted quickly
|
|
55
|
-
# * should be intuitive
|
|
56
|
-
# SharedBehaviourExample::OneThing
|
|
57
|
-
# * should do what things do
|
|
58
|
-
# * should have access to helper methods defined in the shared behaviour
|
|
59
|
-
# SharedBehaviourExample::AnotherThing
|
|
60
|
-
# * should do what things do
|
|
61
|
-
# Stack (empty)
|
|
62
|
-
# * should be empty
|
|
63
|
-
# * should not be full
|
|
64
|
-
# * should add to the top when sent #push
|
|
65
|
-
# * should complain when sent #peek
|
|
66
|
-
# * should complain when sent #pop
|
|
67
|
-
# Stack (with one item)
|
|
68
|
-
# * should not be empty
|
|
69
|
-
# * should return the top item when sent #peek
|
|
70
|
-
# * should NOT remove the top item when sent #peek
|
|
71
|
-
# * should return the top item when sent #pop
|
|
72
|
-
# * should remove the top item when sent #pop
|
|
73
|
-
# * should not be full
|
|
74
|
-
# * should add to the top when sent #push
|
|
75
|
-
# Stack (with one item less than capacity)
|
|
76
|
-
# * should not be empty
|
|
77
|
-
# * should return the top item when sent #peek
|
|
78
|
-
# * should NOT remove the top item when sent #peek
|
|
79
|
-
# * should return the top item when sent #pop
|
|
80
|
-
# * should remove the top item when sent #pop
|
|
81
|
-
# * should not be full
|
|
82
|
-
# * should add to the top when sent #push
|
|
83
|
-
# Stack (full)
|
|
84
|
-
# * should be full
|
|
85
|
-
# * should not be empty
|
|
86
|
-
# * should return the top item when sent #peek
|
|
87
|
-
# * should NOT remove the top item when sent #peek
|
|
88
|
-
# * should return the top item when sent #pop
|
|
89
|
-
# * should remove the top item when sent #pop
|
|
90
|
-
# * should complain on #push
|
|
91
|
-
# A consumer of a stub
|
|
92
|
-
# * should be able to stub methods on any Object
|
|
93
|
-
# A stubbed method on a class
|
|
94
|
-
# * should return the stubbed value
|
|
95
|
-
# * should revert to the original method after each spec
|
|
96
|
-
# * can stub! and mock the same message
|
|
97
|
-
# A mock
|
|
98
|
-
# * can stub!
|
|
99
|
-
# * can stub! and mock
|
|
100
|
-
# * can stub! and mock the same message
|
|
101
|
-
# RSpec should integrate with Test::Unit::TestCase
|
|
102
|
-
# * TestCase#setup should be called.
|
|
103
|
-
# * RSpec should be able to access TestCase methods
|
|
104
|
-
# * RSpec should be able to accept included modules
|
|
105
|
-
|
|
106
|
-
Finished in 0.025956 seconds
|
|
107
|
-
|
|
108
|
-
77 examples, 0 failures, 2 not implemented
|
data/README
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
== RSpec
|
|
2
|
-
|
|
3
|
-
RSpec is a Behaviour Definition Framework intended for use in Behaviour
|
|
4
|
-
Driven Development. RSpec plays the same role that a unit testing framework
|
|
5
|
-
would play in a Test Driven Development environment, but does so using
|
|
6
|
-
words and structures that better support BDD.
|
|
7
|
-
|
|
8
|
-
RSpec ships with four modules:
|
|
9
|
-
|
|
10
|
-
Spec::Matchers provides Expression Matchers for use with Spec::Expectations
|
|
11
|
-
and Spec::Mocks.
|
|
12
|
-
|
|
13
|
-
Spec::Expectations supports setting expectations on your objects so you
|
|
14
|
-
can do things like:
|
|
15
|
-
|
|
16
|
-
result.should equal(expected_result)
|
|
17
|
-
|
|
18
|
-
Spec::Mocks supports creating Mock Objects, Stubs, and adding Mock/Stub
|
|
19
|
-
behaviour to your existing objects.
|
|
20
|
-
|
|
21
|
-
Spec::Runner provides a very small but powerful DSL for writing executable
|
|
22
|
-
examples of how your code should work.
|
|
23
|
-
|
|
24
|
-
== Installation
|
|
25
|
-
|
|
26
|
-
The simplest approach is to install the gem:
|
|
27
|
-
|
|
28
|
-
gem install -r rspec #mac users must sudo
|
|
29
|
-
|
|
30
|
-
== Building the RSpec gem
|
|
31
|
-
If you prefer to build the gem locally, check out source from svn://rubyforge.org/var/svn/rspec/trunk. Then
|
|
32
|
-
do the following:
|
|
33
|
-
|
|
34
|
-
rake gem
|
|
35
|
-
gem install pkg/rspec-0.x.x.gem (you may have to sudo)
|
|
36
|
-
|
|
37
|
-
== Running RSpec's specs
|
|
38
|
-
In order to run RSpec's full suite of specs (rake pre_commit) you must install the following gems:
|
|
39
|
-
|
|
40
|
-
* rake # Runs the build script
|
|
41
|
-
* rcov # Verifies that the code is 100% covered by specs
|
|
42
|
-
* webgen # Generates the static HTML website
|
|
43
|
-
* RedCloth # Required by webgen
|
|
44
|
-
* syntax # Required by our own custom webgen extension to highlight ruby code
|
|
45
|
-
* diff-lcs # Required if you use the --diff switch
|
|
46
|
-
* win32console # Required by the --colour switch if you're on Windows
|
|
47
|
-
* meta_project # Required in order to make releases at RubyForge
|
|
48
|
-
* heckle # Required if you use the --heckle switch
|
|
49
|
-
|
|
50
|
-
Once those are all installed, you should be able to run the suite with the following steps:
|
|
51
|
-
|
|
52
|
-
* svn co svn://rubyforge.org/var/svn/rspec/trunk rspec
|
|
53
|
-
* cd rspec
|
|
54
|
-
* rake install_dependencies
|
|
55
|
-
* cd example_rails_app
|
|
56
|
-
* export RSPEC_RAILS_VERSION=1.2.3
|
|
57
|
-
* rake rspec:generate_mysql_config
|
|
58
|
-
* mysql -u root < db/mysql_setup.sql
|
|
59
|
-
* cd ..
|
|
60
|
-
* rake pre_commit
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
Note that RSpec itself - once built - doesn't have any dependencies outside the Ruby core
|
|
64
|
-
and stdlib - with a few exceptions:
|
|
65
|
-
|
|
66
|
-
* The spec command line uses diff-lcs when --diff is specified.
|
|
67
|
-
* The spec command line uses heckle when --heckle is specified.
|
|
68
|
-
* The Spec::Rake::SpecTask needs RCov if RCov is enabled in the task.
|
|
69
|
-
|
|
70
|
-
See http://rspec.rubyforge.org for further documentation.
|
data/UPGRADE
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
= Upgrading existing code to RSpec-0.9
|
|
2
|
-
|
|
3
|
-
== General (see below for Spec::Rails specifics)
|
|
4
|
-
|
|
5
|
-
=== New Syntax for should and should_not
|
|
6
|
-
|
|
7
|
-
* Use translator (should get 90% of your code)
|
|
8
|
-
* Manually fix "parenthesis" warnings
|
|
9
|
-
|
|
10
|
-
=== Change before_context_eval to before_eval
|
|
11
|
-
|
|
12
|
-
before_context_eval is an un-published hook used by
|
|
13
|
-
Spec::Rails to create specialized behaviour contexts.
|
|
14
|
-
Most of you don't need to change this, but for those
|
|
15
|
-
who have exploited it, you'll need to change it to
|
|
16
|
-
before_eval.
|
|
17
|
-
|
|
18
|
-
== Spec::Rails
|
|
19
|
-
|
|
20
|
-
=== spec_helper.rb
|
|
21
|
-
|
|
22
|
-
We've added a new way to configure Spec::Runner to do
|
|
23
|
-
things like use_transactional_fixtures and use_instantiated_fixtures.
|
|
24
|
-
You'll need to update spec/spec_helper.rb accordingly. You can either
|
|
25
|
-
just re-generate it:
|
|
26
|
-
|
|
27
|
-
script/generate rspec
|
|
28
|
-
|
|
29
|
-
Or modify spec_helper.rb based on the template, which can be found at:
|
|
30
|
-
|
|
31
|
-
vendor/plugins/rspec_on_rails/generators/rspec/templates/spec_helper.rb
|
data/bin/spec_translator
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
raise "\n\nUsage: spec_translator from_dir to_dir\n\n" if ARGV.size != 2
|
|
3
|
-
$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__) + "/../lib"))
|
|
4
|
-
require 'spec/translator'
|
|
5
|
-
t = ::Spec::Translator.new
|
|
6
|
-
from = ARGV[0]
|
|
7
|
-
to = ARGV[1]
|
|
8
|
-
t.translate(from, to)
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/spec_helper'
|
|
2
|
-
|
|
3
|
-
# Run spec w/ -fs to see the output of this file
|
|
4
|
-
|
|
5
|
-
describe "Examples with no descriptions" do
|
|
6
|
-
|
|
7
|
-
# description is auto-generated as "should equal(5)" based on the last #should
|
|
8
|
-
it do
|
|
9
|
-
3.should equal(3)
|
|
10
|
-
5.should equal(5)
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
it { 3.should be < 5 }
|
|
14
|
-
|
|
15
|
-
it { ["a"].should include("a") }
|
|
16
|
-
|
|
17
|
-
it { [1,2,3].should respond_to(:size) }
|
|
18
|
-
|
|
19
|
-
end
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
$global = 0
|
|
2
|
-
|
|
3
|
-
describe "State created in before(:all)" do
|
|
4
|
-
before :all do
|
|
5
|
-
@sideeffect = 1
|
|
6
|
-
$global +=1
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
before :each do
|
|
10
|
-
@isolated = 1
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
it "should be accessible from example" do
|
|
14
|
-
@sideeffect.should == 1
|
|
15
|
-
$global.should == 1
|
|
16
|
-
@isolated.should == 1
|
|
17
|
-
|
|
18
|
-
@sideeffect += 1
|
|
19
|
-
@isolated += 1
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
it "should not have sideffects" do
|
|
23
|
-
@sideeffect.should == 1
|
|
24
|
-
$global.should == 2
|
|
25
|
-
@isolated.should == 1
|
|
26
|
-
|
|
27
|
-
@sideeffect += 1
|
|
28
|
-
@isolated += 1
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
after :each do
|
|
32
|
-
$global += 1
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
after :all do
|
|
36
|
-
$global.should == 3
|
|
37
|
-
$global = 0
|
|
38
|
-
end
|
|
39
|
-
end
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/spec_helper'
|
|
2
|
-
|
|
3
|
-
def behave_as_electric_musician
|
|
4
|
-
respond_to(:read_notes, :turn_down_amp)
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
def behave_as_musician
|
|
8
|
-
respond_to(:read_notes)
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
module BehaveAsExample
|
|
12
|
-
|
|
13
|
-
class BluesGuitarist
|
|
14
|
-
def read_notes; end
|
|
15
|
-
def turn_down_amp; end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
class RockGuitarist
|
|
19
|
-
def read_notes; end
|
|
20
|
-
def turn_down_amp; end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
class ClassicGuitarist
|
|
24
|
-
def read_notes; end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
describe BluesGuitarist do
|
|
28
|
-
it "should behave as guitarist" do
|
|
29
|
-
BluesGuitarist.new.should behave_as_electric_musician
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
describe RockGuitarist do
|
|
34
|
-
it "should behave as guitarist" do
|
|
35
|
-
RockGuitarist.new.should behave_as_electric_musician
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
describe ClassicGuitarist do
|
|
40
|
-
it "should not behave as guitarist" do
|
|
41
|
-
ClassicGuitarist.new.should behave_as_musician
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
end
|
data/examples/dynamic_spec.rb
DELETED
data/examples/legacy_spec.rb
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/spec_helper'
|
|
2
|
-
require File.dirname(__FILE__) + "/stack"
|
|
3
|
-
|
|
4
|
-
describe Stack, ' (not implemented features)' do
|
|
5
|
-
before(:each) do
|
|
6
|
-
@stack = Stack.new
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
it "should transform to xml using #to_xml"
|
|
10
|
-
|
|
11
|
-
it "should convert from xml using #from_xml"
|
|
12
|
-
end
|
data/examples/priority.txt
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
examples/custom_expectation_matchers.rb
|
data/examples/spec_helper.rb
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/../lib/spec'
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
#This is an example of using RSpec's expectations in test/unit.
|
|
2
|
-
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), "..", "lib")
|
|
3
|
-
|
|
4
|
-
require 'test/unit'
|
|
5
|
-
require 'spec/test_case_adapter'
|
|
6
|
-
|
|
7
|
-
class IntegratingRSpecExpectationsIntoTestCaseTest < Test::Unit::TestCase
|
|
8
|
-
|
|
9
|
-
def test_should_support_rspecs_equality_expectations
|
|
10
|
-
5.should == 5
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def test_should_support_rspecs_comparison_expectations
|
|
14
|
-
5.should be > 4
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
class Band
|
|
18
|
-
def players
|
|
19
|
-
["John", "Paul", "George", "Ringo"]
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def test_should_support_rspecs_collection_expectations
|
|
24
|
-
Band.new.should have(4).players
|
|
25
|
-
end
|
|
26
|
-
end
|
data/examples/test_case_spec.rb
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/spec_helper'
|
|
2
|
-
require 'test/unit'
|
|
3
|
-
|
|
4
|
-
class RSpecIntegrationTest < Test::Unit::TestCase
|
|
5
|
-
def self.fixtures(*args)
|
|
6
|
-
@@fixtures = true
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
def self.verify_class_method
|
|
10
|
-
@@fixtures.should == true
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def setup
|
|
14
|
-
@test_case_setup_called = true
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def teardown
|
|
18
|
-
@test_case_teardown_called = true
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def run(result)
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def helper_method
|
|
25
|
-
@helper_method_called = true
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
module RandomHelperModule
|
|
30
|
-
def random_task
|
|
31
|
-
@random_task_called = true
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
describe "RSpec should integrate with Test::Unit::TestCase" do
|
|
36
|
-
inherit RSpecIntegrationTest
|
|
37
|
-
include RandomHelperModule
|
|
38
|
-
|
|
39
|
-
fixtures :some_table
|
|
40
|
-
|
|
41
|
-
prepend_before(:each) {setup}
|
|
42
|
-
|
|
43
|
-
before(:each) do
|
|
44
|
-
@rspec_setup_called = true
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
it "TestCase#setup should be called." do
|
|
48
|
-
@test_case_setup_called.should be_true
|
|
49
|
-
@rspec_setup_called.should be_true
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
it "RSpec should be able to access TestCase methods" do
|
|
53
|
-
helper_method
|
|
54
|
-
@helper_method_called.should be_true
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
it "RSpec should be able to accept included modules" do
|
|
58
|
-
random_task
|
|
59
|
-
@random_task_called.should be_true
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
after(:each) do
|
|
63
|
-
RSpecIntegrationTest.verify_class_method
|
|
64
|
-
end
|
|
65
|
-
end
|
data/lib/spec/dsl/behaviour.rb
DELETED
|
@@ -1,204 +0,0 @@
|
|
|
1
|
-
module Spec
|
|
2
|
-
module DSL
|
|
3
|
-
class EvalModule < Module; end
|
|
4
|
-
class Behaviour
|
|
5
|
-
extend BehaviourCallbacks
|
|
6
|
-
|
|
7
|
-
class << self
|
|
8
|
-
def add_shared_behaviour(behaviour)
|
|
9
|
-
return if behaviour.equal?(found_behaviour = find_shared_behaviour(behaviour.description))
|
|
10
|
-
raise ArgumentError.new("Shared Behaviour '#{behaviour.description}' already exists") if found_behaviour
|
|
11
|
-
shared_behaviours << behaviour
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def find_shared_behaviour(behaviour_description)
|
|
15
|
-
shared_behaviours.find { |b| b.description == behaviour_description }
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def shared_behaviours
|
|
19
|
-
# TODO - this needs to be global, or at least accessible from
|
|
20
|
-
# from subclasses of Behaviour in a centralized place. I'm not loving
|
|
21
|
-
# this as a solution, but it works for now.
|
|
22
|
-
$shared_behaviours ||= []
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def initialize(*args, &behaviour_block)
|
|
27
|
-
init_description(*args)
|
|
28
|
-
init_eval_module
|
|
29
|
-
before_eval
|
|
30
|
-
eval_behaviour(&behaviour_block)
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
private
|
|
34
|
-
|
|
35
|
-
def init_description(*args)
|
|
36
|
-
@description = Description.new(*args)
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def init_eval_module
|
|
40
|
-
@eval_module = EvalModule.new
|
|
41
|
-
@eval_module.extend BehaviourEval::ModuleMethods
|
|
42
|
-
@eval_module.include BehaviourEval::InstanceMethods
|
|
43
|
-
@eval_module.behaviour = self
|
|
44
|
-
@eval_module.description = @description
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def eval_behaviour(&behaviour_block)
|
|
48
|
-
@eval_module.class_eval(&behaviour_block)
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
protected
|
|
52
|
-
|
|
53
|
-
def before_eval
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
public
|
|
57
|
-
|
|
58
|
-
def run(reporter, dry_run=false, reverse=false, timeout=nil)
|
|
59
|
-
raise "shared behaviours should never run" if shared?
|
|
60
|
-
reporter.add_behaviour(description)
|
|
61
|
-
prepare_execution_context_class
|
|
62
|
-
errors = run_before_all(reporter, dry_run)
|
|
63
|
-
|
|
64
|
-
specs = reverse ? examples.reverse : examples
|
|
65
|
-
example_execution_context = nil
|
|
66
|
-
|
|
67
|
-
if errors.empty?
|
|
68
|
-
specs.each do |example|
|
|
69
|
-
example_execution_context = execution_context(example)
|
|
70
|
-
example_execution_context.copy_instance_variables_from(@before_and_after_all_context_instance) unless before_all_proc(behaviour_type).nil?
|
|
71
|
-
example.run(reporter, before_each_proc(behaviour_type), after_each_proc(behaviour_type), dry_run, example_execution_context, timeout)
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
@before_and_after_all_context_instance.copy_instance_variables_from(example_execution_context) unless after_all_proc(behaviour_type).nil?
|
|
76
|
-
run_after_all(reporter, dry_run)
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
def number_of_examples
|
|
80
|
-
examples.length
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
def matches?(specified_examples)
|
|
84
|
-
matcher ||= ExampleMatcher.new(description)
|
|
85
|
-
|
|
86
|
-
examples.each do |example|
|
|
87
|
-
return true if example.matches?(matcher, specified_examples)
|
|
88
|
-
end
|
|
89
|
-
return false
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
def shared?
|
|
93
|
-
@description[:shared]
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
def retain_examples_matching!(specified_examples)
|
|
97
|
-
return if specified_examples.index(description)
|
|
98
|
-
matcher = ExampleMatcher.new(description)
|
|
99
|
-
examples.reject! do |example|
|
|
100
|
-
!example.matches?(matcher, specified_examples)
|
|
101
|
-
end
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
def methods
|
|
105
|
-
my_methods = super
|
|
106
|
-
my_methods |= @eval_module.methods
|
|
107
|
-
my_methods
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
# Includes modules in the Behaviour (the <tt>describe</tt> block).
|
|
111
|
-
def include(*args)
|
|
112
|
-
args << {} unless Hash === args.last
|
|
113
|
-
modules, options = args_and_options(*args)
|
|
114
|
-
required_behaviour_type = options[:behaviour_type]
|
|
115
|
-
if required_behaviour_type.nil? || required_behaviour_type.to_sym == behaviour_type.to_sym
|
|
116
|
-
@eval_module.include(*modules)
|
|
117
|
-
end
|
|
118
|
-
end
|
|
119
|
-
|
|
120
|
-
protected
|
|
121
|
-
|
|
122
|
-
def behaviour_type #:nodoc:
|
|
123
|
-
@description[:behaviour_type]
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
# Messages that this class does not understand
|
|
127
|
-
# are passed directly to the @eval_module.
|
|
128
|
-
def method_missing(sym, *args, &block)
|
|
129
|
-
@eval_module.send(sym, *args, &block)
|
|
130
|
-
end
|
|
131
|
-
|
|
132
|
-
def prepare_execution_context_class
|
|
133
|
-
plugin_mock_framework
|
|
134
|
-
weave_in_included_modules
|
|
135
|
-
define_predicate_matchers #this is in behaviour_eval
|
|
136
|
-
execution_context_class
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
def weave_in_included_modules
|
|
140
|
-
mods = included_modules
|
|
141
|
-
eval_module = @eval_module
|
|
142
|
-
execution_context_class.class_eval do
|
|
143
|
-
include eval_module
|
|
144
|
-
Spec::Runner.configuration.included_modules.each do |mod|
|
|
145
|
-
include mod
|
|
146
|
-
end
|
|
147
|
-
mods.each do |mod|
|
|
148
|
-
include mod
|
|
149
|
-
end
|
|
150
|
-
end
|
|
151
|
-
end
|
|
152
|
-
|
|
153
|
-
def execution_context(example)
|
|
154
|
-
execution_context_class.new(example)
|
|
155
|
-
end
|
|
156
|
-
|
|
157
|
-
def run_before_all(reporter, dry_run)
|
|
158
|
-
errors = []
|
|
159
|
-
unless dry_run
|
|
160
|
-
begin
|
|
161
|
-
@before_and_after_all_context_instance = execution_context(nil)
|
|
162
|
-
@before_and_after_all_context_instance.instance_eval(&before_all_proc(behaviour_type))
|
|
163
|
-
rescue => e
|
|
164
|
-
errors << e
|
|
165
|
-
location = "before(:all)"
|
|
166
|
-
reporter.example_finished(location, e, location) if reporter
|
|
167
|
-
end
|
|
168
|
-
end
|
|
169
|
-
errors
|
|
170
|
-
end
|
|
171
|
-
|
|
172
|
-
def run_after_all(reporter, dry_run)
|
|
173
|
-
unless dry_run
|
|
174
|
-
begin
|
|
175
|
-
@before_and_after_all_context_instance ||= execution_context(nil)
|
|
176
|
-
@before_and_after_all_context_instance.instance_eval(&after_all_proc(behaviour_type))
|
|
177
|
-
rescue => e
|
|
178
|
-
location = "after(:all)"
|
|
179
|
-
reporter.example_finished(location, e, location) if reporter
|
|
180
|
-
end
|
|
181
|
-
end
|
|
182
|
-
end
|
|
183
|
-
|
|
184
|
-
def plugin_mock_framework
|
|
185
|
-
case mock_framework = Spec::Runner.configuration.mock_framework
|
|
186
|
-
when Module
|
|
187
|
-
include mock_framework
|
|
188
|
-
else
|
|
189
|
-
require Spec::Runner.configuration.mock_framework
|
|
190
|
-
include Spec::Plugins::MockFramework
|
|
191
|
-
end
|
|
192
|
-
end
|
|
193
|
-
|
|
194
|
-
def description
|
|
195
|
-
@description.to_s
|
|
196
|
-
end
|
|
197
|
-
|
|
198
|
-
def described_type
|
|
199
|
-
@description.described_type
|
|
200
|
-
end
|
|
201
|
-
|
|
202
|
-
end
|
|
203
|
-
end
|
|
204
|
-
end
|