rspec 1.3.2 → 2.0.0.a2
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 +4 -6
- data/.gitignore +4 -14
- data/License.txt +1 -1
- data/README.markdown +46 -0
- data/Rakefile +26 -100
- data/lib/rspec.rb +4 -0
- data/lib/rspec/version.rb +14 -0
- data/rspec.gemspec +46 -19
- metadata +72 -673
- data/.autotest +0 -5
- data/Gemfile +0 -20
- data/History.rdoc +0 -1560
- data/README.rdoc +0 -44
- data/Ruby1.9.rdoc +0 -31
- data/TODO.txt +0 -17
- data/Upgrade.rdoc +0 -260
- data/bin/autospec +0 -4
- data/bin/spec +0 -5
- data/cucumber.yml +0 -5
- data/example_spec.rb +0 -4
- data/examples/failing/README.txt +0 -11
- data/examples/failing/diffing_spec.rb +0 -36
- data/examples/failing/failing_implicit_docstrings_example.rb +0 -17
- data/examples/failing/failure_in_after.rb +0 -10
- data/examples/failing/failure_in_before.rb +0 -10
- data/examples/failing/mocking_example.rb +0 -38
- data/examples/failing/mocking_with_flexmock.rb +0 -26
- data/examples/failing/mocking_with_mocha.rb +0 -25
- data/examples/failing/mocking_with_rr.rb +0 -27
- data/examples/failing/partial_mock_example.rb +0 -18
- data/examples/failing/pending_example.rb +0 -7
- data/examples/failing/predicate_example.rb +0 -32
- data/examples/failing/raising_example.rb +0 -47
- data/examples/failing/syntax_error_example.rb +0 -7
- data/examples/failing/team_spec.rb +0 -41
- data/examples/failing/timeout_behaviour.rb +0 -5
- data/examples/passing/custom_formatter.rb +0 -11
- data/examples/passing/custom_matchers.rb +0 -54
- data/examples/passing/dynamic_spec.rb +0 -7
- data/examples/passing/file_accessor.rb +0 -18
- data/examples/passing/file_accessor_spec.rb +0 -37
- data/examples/passing/filtered_formatter.rb +0 -17
- data/examples/passing/filtered_formatter_example.rb +0 -31
- data/examples/passing/greeter_spec.rb +0 -30
- data/examples/passing/helper_method_example.rb +0 -12
- data/examples/passing/implicit_docstrings_example.rb +0 -16
- data/examples/passing/io_processor.rb +0 -8
- data/examples/passing/io_processor_spec.rb +0 -20
- data/examples/passing/mocking_example.rb +0 -25
- data/examples/passing/multi_threaded_example_group_runner.rb +0 -26
- data/examples/passing/nested_classes_example.rb +0 -35
- data/examples/passing/options_example.rb +0 -29
- data/examples/passing/options_formatter.rb +0 -20
- data/examples/passing/partial_mock_example.rb +0 -27
- data/examples/passing/pending_example.rb +0 -18
- data/examples/passing/predicate_example.rb +0 -25
- data/examples/passing/shared_example_group_example.rb +0 -43
- data/examples/passing/shared_stack_examples.rb +0 -36
- data/examples/passing/simple_matcher_example.rb +0 -29
- data/examples/passing/stack.rb +0 -36
- data/examples/passing/stack_spec.rb +0 -63
- data/examples/passing/stack_spec_with_nested_example_groups.rb +0 -66
- data/examples/passing/stubbing_example.rb +0 -67
- data/examples/passing/yielding_example.rb +0 -31
- data/examples/ruby1.9.compatibility/access_to_constants_spec.rb +0 -85
- data/features-pending/cli/conditional_exclusion.feature +0 -39
- data/features-pending/heckle/heckle.feature +0 -56
- data/features/before_and_after_blocks/before_and_after_blocks.feature +0 -167
- data/features/command_line/line_number_option.feature +0 -56
- data/features/command_line/line_number_option_with_example_with_no_name.feature +0 -22
- data/features/example_groups/define_example_attribute.feature +0 -41
- data/features/example_groups/example_group_with_should_methods.feature +0 -29
- data/features/example_groups/implicit_docstrings.feature +0 -59
- data/features/example_groups/nested_groups.feature +0 -32
- data/features/expectations/customized_message.feature +0 -54
- data/features/expectations/expect_change.feature +0 -65
- data/features/expectations/expect_error.feature +0 -44
- data/features/extensions/custom_example_group.feature +0 -19
- data/features/formatters/custom_formatter.feature +0 -30
- data/features/formatters/nested_formatter.feature +0 -32
- data/features/interop/cucumber_stubs_dont_leak.feature +0 -11
- data/features/interop/examples_and_tests_together.feature +0 -84
- data/features/interop/rspec_output.feature +0 -25
- data/features/interop/test_but_not_test_unit.feature +0 -26
- data/features/interop/test_case_with_should_methods.feature +0 -46
- data/features/load_paths/add_lib_to_load_path.feature +0 -20
- data/features/load_paths/add_spec_to_load_path.feature +0 -20
- data/features/matchers/define_diffable_matcher.feature +0 -26
- data/features/matchers/define_matcher.feature +0 -179
- data/features/matchers/define_matcher_outside_rspec.feature +0 -37
- data/features/matchers/define_matcher_with_fluent_interface.feature +0 -48
- data/features/matchers/define_wrapped_matcher.feature +0 -56
- data/features/matchers/match_unless_raises.feature +0 -60
- data/features/matchers/match_unless_raises_unexpected_error.feature +0 -39
- data/features/mock_framework_integration/use_flexmock.feature +0 -27
- data/features/mock_framework_integration/use_mocha.feature +0 -27
- data/features/mock_framework_integration/use_rr.feature +0 -27
- data/features/mocks/block_local_expectations.feature +0 -62
- data/features/mocks/mix_stubs_and_mocks.feature +0 -22
- data/features/mocks/stub_implementation.feature +0 -26
- data/features/pending/pending_examples.feature +0 -81
- data/features/runner/specify_line_number.feature +0 -32
- data/features/spec_helper/spec_helper.feature +0 -25
- data/features/step_definitions/running_rspec_steps.rb +0 -52
- data/features/step_definitions/stubbing_steps.rb +0 -16
- data/features/subject/explicit_subject.feature +0 -31
- data/features/subject/implicit_subject.feature +0 -43
- data/features/support/env.rb +0 -83
- data/features/support/matchers/smart_match.rb +0 -31
- data/init.rb +0 -9
- data/lib/autotest/discover.rb +0 -3
- data/lib/autotest/rspec.rb +0 -54
- data/lib/spec.rb +0 -8
- data/lib/spec/adapters/mock_frameworks/flexmock.rb +0 -24
- data/lib/spec/adapters/mock_frameworks/mocha.rb +0 -25
- data/lib/spec/adapters/mock_frameworks/rr.rb +0 -22
- data/lib/spec/adapters/mock_frameworks/rspec.rb +0 -21
- data/lib/spec/autorun.rb +0 -3
- data/lib/spec/deprecation.rb +0 -41
- data/lib/spec/dsl.rb +0 -1
- data/lib/spec/dsl/main.rb +0 -93
- data/lib/spec/example.rb +0 -164
- data/lib/spec/example/args_and_options.rb +0 -27
- data/lib/spec/example/before_and_after_hooks.rb +0 -93
- data/lib/spec/example/errors.rb +0 -25
- data/lib/spec/example/example_group.rb +0 -10
- data/lib/spec/example/example_group_factory.rb +0 -82
- data/lib/spec/example/example_group_hierarchy.rb +0 -53
- data/lib/spec/example/example_group_methods.rb +0 -287
- data/lib/spec/example/example_group_proxy.rb +0 -61
- data/lib/spec/example/example_matcher.rb +0 -43
- data/lib/spec/example/example_methods.rb +0 -152
- data/lib/spec/example/example_proxy.rb +0 -41
- data/lib/spec/example/module_reopening_fix.rb +0 -43
- data/lib/spec/example/pending.rb +0 -18
- data/lib/spec/example/predicate_matchers.rb +0 -46
- data/lib/spec/example/shared_example_group.rb +0 -59
- data/lib/spec/example/subject.rb +0 -114
- data/lib/spec/expectations.rb +0 -35
- data/lib/spec/expectations/errors.rb +0 -12
- data/lib/spec/expectations/extensions.rb +0 -1
- data/lib/spec/expectations/extensions/kernel.rb +0 -52
- data/lib/spec/expectations/fail_with.rb +0 -45
- data/lib/spec/expectations/handler.rb +0 -50
- data/lib/spec/extensions/instance_exec.rb +0 -31
- data/lib/spec/interop/test.rb +0 -44
- data/lib/spec/interop/test/unit/autorunner.rb +0 -6
- data/lib/spec/interop/test/unit/testcase.rb +0 -56
- data/lib/spec/interop/test/unit/testresult.rb +0 -6
- data/lib/spec/interop/test/unit/testsuite_adapter.rb +0 -36
- data/lib/spec/interop/test/unit/ui/console/testrunner.rb +0 -61
- data/lib/spec/matchers.rb +0 -214
- data/lib/spec/matchers/be.rb +0 -249
- data/lib/spec/matchers/be_close.rb +0 -32
- data/lib/spec/matchers/be_instance_of.rb +0 -26
- data/lib/spec/matchers/be_kind_of.rb +0 -26
- data/lib/spec/matchers/change.rb +0 -151
- data/lib/spec/matchers/compatibility.rb +0 -14
- data/lib/spec/matchers/dsl.rb +0 -20
- data/lib/spec/matchers/eql.rb +0 -42
- data/lib/spec/matchers/equal.rb +0 -53
- data/lib/spec/matchers/errors.rb +0 -5
- data/lib/spec/matchers/exist.rb +0 -16
- data/lib/spec/matchers/generated_descriptions.rb +0 -36
- data/lib/spec/matchers/has.rb +0 -35
- data/lib/spec/matchers/have.rb +0 -152
- data/lib/spec/matchers/include.rb +0 -44
- data/lib/spec/matchers/match.rb +0 -21
- data/lib/spec/matchers/match_array.rb +0 -71
- data/lib/spec/matchers/matcher.rb +0 -132
- data/lib/spec/matchers/method_missing.rb +0 -9
- data/lib/spec/matchers/operator_matcher.rb +0 -83
- data/lib/spec/matchers/pretty.rb +0 -37
- data/lib/spec/matchers/raise_exception.rb +0 -131
- data/lib/spec/matchers/respond_to.rb +0 -71
- data/lib/spec/matchers/satisfy.rb +0 -47
- data/lib/spec/matchers/simple_matcher.rb +0 -134
- data/lib/spec/matchers/throw_symbol.rb +0 -100
- data/lib/spec/matchers/wrap_expectation.rb +0 -55
- data/lib/spec/mocks.rb +0 -200
- data/lib/spec/mocks/argument_expectation.rb +0 -51
- data/lib/spec/mocks/argument_matchers.rb +0 -237
- data/lib/spec/mocks/error_generator.rb +0 -92
- data/lib/spec/mocks/errors.rb +0 -10
- data/lib/spec/mocks/example_methods.rb +0 -69
- data/lib/spec/mocks/extensions.rb +0 -1
- data/lib/spec/mocks/extensions/object.rb +0 -3
- data/lib/spec/mocks/framework.rb +0 -15
- data/lib/spec/mocks/message_expectation.rb +0 -344
- data/lib/spec/mocks/methods.rb +0 -94
- data/lib/spec/mocks/mock.rb +0 -71
- data/lib/spec/mocks/order_group.rb +0 -29
- data/lib/spec/mocks/proxy.rb +0 -254
- data/lib/spec/mocks/space.rb +0 -28
- data/lib/spec/rake/spectask.rb +0 -230
- data/lib/spec/rake/verify_rcov.rb +0 -52
- data/lib/spec/ruby.rb +0 -9
- data/lib/spec/runner.rb +0 -66
- data/lib/spec/runner/backtrace_tweaker.rb +0 -78
- data/lib/spec/runner/class_and_arguments_parser.rb +0 -14
- data/lib/spec/runner/command_line.rb +0 -15
- data/lib/spec/runner/configuration.rb +0 -202
- data/lib/spec/runner/differs/default.rb +0 -93
- data/lib/spec/runner/differs/load-diff-lcs.rb +0 -12
- data/lib/spec/runner/drb_command_line.rb +0 -32
- data/lib/spec/runner/example_group_runner.rb +0 -58
- data/lib/spec/runner/extensions/kernel.rb +0 -9
- data/lib/spec/runner/formatter/base_formatter.rb +0 -139
- data/lib/spec/runner/formatter/base_text_formatter.rb +0 -142
- data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +0 -25
- data/lib/spec/runner/formatter/failing_examples_formatter.rb +0 -20
- data/lib/spec/runner/formatter/html_formatter.rb +0 -338
- data/lib/spec/runner/formatter/nested_text_formatter.rb +0 -50
- data/lib/spec/runner/formatter/no_op_method_missing.rb +0 -21
- data/lib/spec/runner/formatter/profile_formatter.rb +0 -47
- data/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -33
- data/lib/spec/runner/formatter/silent_formatter.rb +0 -10
- data/lib/spec/runner/formatter/snippet_extractor.rb +0 -52
- data/lib/spec/runner/formatter/specdoc_formatter.rb +0 -33
- data/lib/spec/runner/formatter/text_mate_formatter.rb +0 -16
- data/lib/spec/runner/heckle_runner.rb +0 -77
- data/lib/spec/runner/heckle_runner_unsupported.rb +0 -10
- data/lib/spec/runner/line_number_query.rb +0 -78
- data/lib/spec/runner/option_parser.rb +0 -225
- data/lib/spec/runner/options.rb +0 -406
- data/lib/spec/runner/reporter.rb +0 -171
- data/lib/spec/stubs/cucumber.rb +0 -5
- data/lib/spec/test/unit.rb +0 -10
- data/lib/spec/version.rb +0 -14
- data/resources/helpers/cmdline.rb +0 -8
- data/resources/rake/examples.rake +0 -7
- data/resources/rake/examples_with_rcov.rake +0 -9
- data/resources/rake/failing_examples_with_html.rake +0 -9
- data/resources/rake/verify_rcov.rake +0 -7
- data/spec/README.jruby +0 -15
- data/spec/autotest/autotest_helper.rb +0 -8
- data/spec/autotest/autotest_matchers.rb +0 -38
- data/spec/autotest/discover_spec.rb +0 -8
- data/spec/autotest/failed_results_re_spec.rb +0 -31
- data/spec/autotest/rspec_spec.rb +0 -126
- data/spec/ruby_forker.rb +0 -13
- data/spec/spec.opts +0 -6
- data/spec/spec/dsl/main_spec.rb +0 -103
- data/spec/spec/example/example_group_class_definition_spec.rb +0 -51
- data/spec/spec/example/example_group_factory_spec.rb +0 -180
- data/spec/spec/example/example_group_methods_spec.rb +0 -778
- data/spec/spec/example/example_group_proxy_spec.rb +0 -107
- data/spec/spec/example/example_group_spec.rb +0 -632
- data/spec/spec/example/example_matcher_spec.rb +0 -85
- data/spec/spec/example/example_methods_spec.rb +0 -162
- data/spec/spec/example/example_proxy_spec.rb +0 -57
- data/spec/spec/example/helper_method_spec.rb +0 -24
- data/spec/spec/example/nested_example_group_spec.rb +0 -71
- data/spec/spec/example/pending_module_spec.rb +0 -58
- data/spec/spec/example/predicate_matcher_spec.rb +0 -41
- data/spec/spec/example/shared_example_group_spec.rb +0 -257
- data/spec/spec/example/subclassing_example_group_spec.rb +0 -25
- data/spec/spec/example/subject_spec.rb +0 -110
- data/spec/spec/expectations/differs/default_spec.rb +0 -194
- data/spec/spec/expectations/extensions/kernel_spec.rb +0 -45
- data/spec/spec/expectations/fail_with_spec.rb +0 -96
- data/spec/spec/expectations/handler_spec.rb +0 -206
- data/spec/spec/expectations/wrap_expectation_spec.rb +0 -31
- data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +0 -10
- data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +0 -10
- data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +0 -10
- data/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +0 -13
- data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +0 -10
- data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +0 -10
- data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +0 -10
- data/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +0 -22
- data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +0 -38
- data/spec/spec/interop/test/unit/spec_spec.rb +0 -48
- data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +0 -18
- data/spec/spec/interop/test/unit/testcase_spec.rb +0 -50
- data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +0 -9
- data/spec/spec/matchers/be_close_spec.rb +0 -50
- data/spec/spec/matchers/be_instance_of_spec.rb +0 -36
- data/spec/spec/matchers/be_kind_of_spec.rb +0 -33
- data/spec/spec/matchers/be_spec.rb +0 -460
- data/spec/spec/matchers/change_spec.rb +0 -349
- data/spec/spec/matchers/compatibility_spec.rb +0 -28
- data/spec/spec/matchers/description_generation_spec.rb +0 -160
- data/spec/spec/matchers/dsl_spec.rb +0 -34
- data/spec/spec/matchers/eql_spec.rb +0 -33
- data/spec/spec/matchers/equal_spec.rb +0 -57
- data/spec/spec/matchers/exist_spec.rb +0 -65
- data/spec/spec/matchers/has_spec.rb +0 -190
- data/spec/spec/matchers/have_spec.rb +0 -381
- data/spec/spec/matchers/include_spec.rb +0 -88
- data/spec/spec/matchers/match_array_spec.rb +0 -115
- data/spec/spec/matchers/match_spec.rb +0 -57
- data/spec/spec/matchers/matcher_spec.rb +0 -289
- data/spec/spec/matchers/matchers_spec.rb +0 -2
- data/spec/spec/matchers/operator_matcher_spec.rb +0 -191
- data/spec/spec/matchers/pretty_spec.rb +0 -22
- data/spec/spec/matchers/raise_exception_spec.rb +0 -345
- data/spec/spec/matchers/respond_to_spec.rb +0 -116
- data/spec/spec/matchers/satisfy_spec.rb +0 -36
- data/spec/spec/matchers/simple_matcher_spec.rb +0 -100
- data/spec/spec/matchers/throw_symbol_spec.rb +0 -121
- data/spec/spec/mocks/and_yield_spec.rb +0 -117
- data/spec/spec/mocks/any_number_of_times_spec.rb +0 -36
- data/spec/spec/mocks/argument_expectation_spec.rb +0 -23
- data/spec/spec/mocks/argument_matchers_spec.rb +0 -19
- data/spec/spec/mocks/at_least_spec.rb +0 -97
- data/spec/spec/mocks/at_most_spec.rb +0 -93
- data/spec/spec/mocks/bug_report_10260_spec.rb +0 -8
- data/spec/spec/mocks/bug_report_10263_spec.rb +0 -27
- data/spec/spec/mocks/bug_report_1049_spec.rb +0 -30
- data/spec/spec/mocks/bug_report_11545_spec.rb +0 -32
- data/spec/spec/mocks/bug_report_15719_spec.rb +0 -30
- data/spec/spec/mocks/bug_report_496_spec.rb +0 -17
- data/spec/spec/mocks/bug_report_600_spec.rb +0 -22
- data/spec/spec/mocks/bug_report_7611_spec.rb +0 -19
- data/spec/spec/mocks/bug_report_7805_spec.rb +0 -22
- data/spec/spec/mocks/bug_report_8165_spec.rb +0 -31
- data/spec/spec/mocks/bug_report_8302_spec.rb +0 -26
- data/spec/spec/mocks/bug_report_830_spec.rb +0 -21
- data/spec/spec/mocks/bug_report_957_spec.rb +0 -22
- data/spec/spec/mocks/double_spec.rb +0 -12
- data/spec/spec/mocks/failing_argument_matchers_spec.rb +0 -95
- data/spec/spec/mocks/hash_including_matcher_spec.rb +0 -90
- data/spec/spec/mocks/hash_not_including_matcher_spec.rb +0 -67
- data/spec/spec/mocks/mock_ordering_spec.rb +0 -94
- data/spec/spec/mocks/mock_space_spec.rb +0 -54
- data/spec/spec/mocks/mock_spec.rb +0 -601
- data/spec/spec/mocks/multiple_return_value_spec.rb +0 -113
- data/spec/spec/mocks/nil_expectation_warning_spec.rb +0 -53
- data/spec/spec/mocks/null_object_mock_spec.rb +0 -54
- data/spec/spec/mocks/once_counts_spec.rb +0 -53
- data/spec/spec/mocks/options_hash_spec.rb +0 -35
- data/spec/spec/mocks/partial_mock_spec.rb +0 -164
- data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +0 -66
- data/spec/spec/mocks/passing_argument_matchers_spec.rb +0 -145
- data/spec/spec/mocks/precise_counts_spec.rb +0 -52
- data/spec/spec/mocks/record_messages_spec.rb +0 -26
- data/spec/spec/mocks/stub_chain_spec.rb +0 -42
- data/spec/spec/mocks/stub_implementation_spec.rb +0 -31
- data/spec/spec/mocks/stub_spec.rb +0 -203
- data/spec/spec/mocks/stubbed_message_expectations_spec.rb +0 -26
- data/spec/spec/mocks/twice_counts_spec.rb +0 -67
- data/spec/spec/mocks/unstub_spec.rb +0 -127
- data/spec/spec/package/bin_spec_spec.rb +0 -16
- data/spec/spec/rake/spectask_spec.rb +0 -150
- data/spec/spec/runner/class_and_argument_parser_spec.rb +0 -23
- data/spec/spec/runner/command_line_spec.rb +0 -162
- data/spec/spec/runner/configuration_spec.rb +0 -320
- data/spec/spec/runner/drb_command_line_spec.rb +0 -146
- data/spec/spec/runner/empty_file.txt +0 -0
- data/spec/spec/runner/example_group_runner_spec.rb +0 -26
- data/spec/spec/runner/examples.txt +0 -2
- data/spec/spec/runner/failed.txt +0 -3
- data/spec/spec/runner/formatter/base_formatter_spec.rb +0 -30
- data/spec/spec/runner/formatter/base_text_formatter_spec.rb +0 -113
- data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +0 -45
- data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +0 -33
- data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +0 -377
- data/spec/spec/runner/formatter/html_formatted-1.8.6.html +0 -377
- data/spec/spec/runner/formatter/html_formatted-1.8.7.html +0 -377
- data/spec/spec/runner/formatter/html_formatted-1.9.1.html +0 -377
- data/spec/spec/runner/formatter/html_formatted-1.9.2.html +0 -377
- data/spec/spec/runner/formatter/html_formatter_spec.rb +0 -118
- data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +0 -329
- data/spec/spec/runner/formatter/profile_formatter_spec.rb +0 -70
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +0 -149
- data/spec/spec/runner/formatter/snippet_extractor_spec.rb +0 -18
- data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +0 -159
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +0 -371
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +0 -371
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +0 -371
- data/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +0 -371
- data/spec/spec/runner/formatter/text_mate_formatted-1.9.2.html +0 -371
- data/spec/spec/runner/formatter/text_mate_formatter_spec.rb +0 -106
- data/spec/spec/runner/heckle_runner_spec.rb +0 -78
- data/spec/spec/runner/heckler_spec.rb +0 -20
- data/spec/spec/runner/line_number_query/line_number_query_fixture.rb +0 -70
- data/spec/spec/runner/line_number_query_spec.rb +0 -129
- data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +0 -51
- data/spec/spec/runner/option_parser_spec.rb +0 -551
- data/spec/spec/runner/options_spec.rb +0 -554
- data/spec/spec/runner/output_one_time_fixture.rb +0 -7
- data/spec/spec/runner/output_one_time_fixture_runner.rb +0 -7
- data/spec/spec/runner/output_one_time_spec.rb +0 -15
- data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +0 -123
- data/spec/spec/runner/reporter_spec.rb +0 -244
- 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 +0 -1
- data/spec/spec/runner/resources/custom_example_group_runner.rb +0 -14
- data/spec/spec/runner/resources/utf8_encoded.rb +0 -8
- data/spec/spec/runner/spec.opts +0 -2
- data/spec/spec/runner/spec_drb.opts +0 -2
- data/spec/spec/runner/spec_spaced.opts +0 -2
- data/spec/spec/runner_spec.rb +0 -13
- data/spec/spec_helper.rb +0 -113
- data/spec/support/macros.rb +0 -29
- data/spec/support/spec_classes.rb +0 -133
data/lib/spec/matchers/have.rb
DELETED
@@ -1,152 +0,0 @@
|
|
1
|
-
module Spec
|
2
|
-
module Matchers
|
3
|
-
class Have #:nodoc:
|
4
|
-
def initialize(expected, relativity=:exactly)
|
5
|
-
@expected = (expected == :no ? 0 : expected)
|
6
|
-
@relativity = relativity
|
7
|
-
@actual = nil
|
8
|
-
@plural_collection_name = nil
|
9
|
-
end
|
10
|
-
|
11
|
-
def relativities
|
12
|
-
@relativities ||= {
|
13
|
-
:exactly => "",
|
14
|
-
:at_least => "at least ",
|
15
|
-
:at_most => "at most "
|
16
|
-
}
|
17
|
-
end
|
18
|
-
|
19
|
-
def matches?(collection_owner)
|
20
|
-
if collection_owner.respond_to?(@collection_name)
|
21
|
-
collection = collection_owner.__send__(@collection_name, *@args, &@block)
|
22
|
-
elsif (@plural_collection_name && collection_owner.respond_to?(@plural_collection_name))
|
23
|
-
collection = collection_owner.__send__(@plural_collection_name, *@args, &@block)
|
24
|
-
elsif (collection_owner.respond_to?(:length) || collection_owner.respond_to?(:size))
|
25
|
-
collection = collection_owner
|
26
|
-
else
|
27
|
-
collection_owner.__send__(@collection_name, *@args, &@block)
|
28
|
-
end
|
29
|
-
@actual = collection.size if collection.respond_to?(:size)
|
30
|
-
@actual = collection.length if collection.respond_to?(:length)
|
31
|
-
raise not_a_collection if @actual.nil?
|
32
|
-
return @actual >= @expected if @relativity == :at_least
|
33
|
-
return @actual <= @expected if @relativity == :at_most
|
34
|
-
return @actual == @expected
|
35
|
-
end
|
36
|
-
|
37
|
-
def not_a_collection
|
38
|
-
"expected #{@collection_name} to be a collection but it does not respond to #length or #size"
|
39
|
-
end
|
40
|
-
|
41
|
-
def failure_message_for_should
|
42
|
-
"expected #{relative_expectation} #{@collection_name}, got #{@actual}"
|
43
|
-
end
|
44
|
-
|
45
|
-
def failure_message_for_should_not
|
46
|
-
if @relativity == :exactly
|
47
|
-
return "expected target not to have #{@expected} #{@collection_name}, got #{@actual}"
|
48
|
-
elsif @relativity == :at_most
|
49
|
-
return <<-EOF
|
50
|
-
Isn't life confusing enough?
|
51
|
-
Instead of having to figure out the meaning of this:
|
52
|
-
should_not have_at_most(#{@expected}).#{@collection_name}
|
53
|
-
We recommend that you use this instead:
|
54
|
-
should have_at_least(#{@expected + 1}).#{@collection_name}
|
55
|
-
EOF
|
56
|
-
elsif @relativity == :at_least
|
57
|
-
return <<-EOF
|
58
|
-
Isn't life confusing enough?
|
59
|
-
Instead of having to figure out the meaning of this:
|
60
|
-
should_not have_at_least(#{@expected}).#{@collection_name}
|
61
|
-
We recommend that you use this instead:
|
62
|
-
should have_at_most(#{@expected - 1}).#{@collection_name}
|
63
|
-
EOF
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
def description
|
68
|
-
"have #{relative_expectation} #{@collection_name}"
|
69
|
-
end
|
70
|
-
|
71
|
-
def respond_to?(sym)
|
72
|
-
@expected.respond_to?(sym) || super
|
73
|
-
end
|
74
|
-
|
75
|
-
private
|
76
|
-
|
77
|
-
def method_missing(sym, *args, &block)
|
78
|
-
@collection_name = sym
|
79
|
-
if inflector = (defined?(ActiveSupport::Inflector) ? ActiveSupport::Inflector : (defined?(Inflector) ? Inflector : nil))
|
80
|
-
@plural_collection_name = inflector.pluralize(sym.to_s)
|
81
|
-
end
|
82
|
-
@args = args
|
83
|
-
@block = block
|
84
|
-
self
|
85
|
-
end
|
86
|
-
|
87
|
-
def relative_expectation
|
88
|
-
"#{relativities[@relativity]}#{@expected}"
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
# :call-seq:
|
93
|
-
# should have(number).named_collection__or__sugar
|
94
|
-
# should_not have(number).named_collection__or__sugar
|
95
|
-
#
|
96
|
-
# Passes if receiver is a collection with the submitted
|
97
|
-
# number of items OR if the receiver OWNS a collection
|
98
|
-
# with the submitted number of items.
|
99
|
-
#
|
100
|
-
# If the receiver OWNS the collection, you must use the name
|
101
|
-
# of the collection. So if a <tt>Team</tt> instance has a
|
102
|
-
# collection named <tt>#players</tt>, you must use that name
|
103
|
-
# to set the expectation.
|
104
|
-
#
|
105
|
-
# If the receiver IS the collection, you can use any name
|
106
|
-
# you like for <tt>named_collection</tt>. We'd recommend using
|
107
|
-
# either "elements", "members", or "items" as these are all
|
108
|
-
# standard ways of describing the things IN a collection.
|
109
|
-
#
|
110
|
-
# This also works for Strings, letting you set an expectation
|
111
|
-
# about its length
|
112
|
-
#
|
113
|
-
# == Examples
|
114
|
-
#
|
115
|
-
# # Passes if team.players.size == 11
|
116
|
-
# team.should have(11).players
|
117
|
-
#
|
118
|
-
# # Passes if [1,2,3].length == 3
|
119
|
-
# [1,2,3].should have(3).items #"items" is pure sugar
|
120
|
-
#
|
121
|
-
# # Passes if "this string".length == 11
|
122
|
-
# "this string".should have(11).characters #"characters" is pure sugar
|
123
|
-
def have(n)
|
124
|
-
Matchers::Have.new(n)
|
125
|
-
end
|
126
|
-
alias :have_exactly :have
|
127
|
-
|
128
|
-
# :call-seq:
|
129
|
-
# should have_at_least(number).items
|
130
|
-
#
|
131
|
-
# Exactly like have() with >=.
|
132
|
-
#
|
133
|
-
# == Warning
|
134
|
-
#
|
135
|
-
# +should_not+ +have_at_least+ is not supported
|
136
|
-
def have_at_least(n)
|
137
|
-
Matchers::Have.new(n, :at_least)
|
138
|
-
end
|
139
|
-
|
140
|
-
# :call-seq:
|
141
|
-
# should have_at_most(number).items
|
142
|
-
#
|
143
|
-
# Exactly like have() with <=.
|
144
|
-
#
|
145
|
-
# == Warning
|
146
|
-
#
|
147
|
-
# +should_not+ +have_at_most+ is not supported
|
148
|
-
def have_at_most(n)
|
149
|
-
Matchers::Have.new(n, :at_most)
|
150
|
-
end
|
151
|
-
end
|
152
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
module Spec
|
2
|
-
module Matchers
|
3
|
-
# :call-seq:
|
4
|
-
# should include(expected)
|
5
|
-
# should_not include(expected)
|
6
|
-
#
|
7
|
-
# Passes if actual includes expected. This works for
|
8
|
-
# collections and Strings. You can also pass in multiple args
|
9
|
-
# and it will only pass if all args are found in collection.
|
10
|
-
#
|
11
|
-
# == Examples
|
12
|
-
#
|
13
|
-
# [1,2,3].should include(3)
|
14
|
-
# [1,2,3].should include(2,3) #would pass
|
15
|
-
# [1,2,3].should include(2,3,4) #would fail
|
16
|
-
# [1,2,3].should_not include(4)
|
17
|
-
# "spread".should include("read")
|
18
|
-
# "spread".should_not include("red")
|
19
|
-
def include(*expected)
|
20
|
-
Matcher.new :include, *expected do |*_expected_|
|
21
|
-
match do |actual|
|
22
|
-
helper(actual, *_expected_)
|
23
|
-
end
|
24
|
-
|
25
|
-
def helper(actual, *_expected_)
|
26
|
-
_expected_.each do |expected|
|
27
|
-
if actual.is_a?(Hash)
|
28
|
-
if expected.is_a?(Hash)
|
29
|
-
expected.each_pair do |k,v|
|
30
|
-
return false unless actual[k] == v
|
31
|
-
end
|
32
|
-
else
|
33
|
-
return false unless actual.has_key?(expected)
|
34
|
-
end
|
35
|
-
else
|
36
|
-
return false unless actual.include?(expected)
|
37
|
-
end
|
38
|
-
end
|
39
|
-
true
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
data/lib/spec/matchers/match.rb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
module Spec
|
2
|
-
module Matchers
|
3
|
-
# :call-seq:
|
4
|
-
# should match(pattern)
|
5
|
-
# should_not match(pattern)
|
6
|
-
#
|
7
|
-
# Given a Regexp or String, passes if actual.match(pattern)
|
8
|
-
#
|
9
|
-
# == Examples
|
10
|
-
#
|
11
|
-
# email.should match(/^([^\s]+)((?:[-a-z0-9]+\.)+[a-z]{2,})$/i)
|
12
|
-
# email.should match("@example.com")
|
13
|
-
def match(expected)
|
14
|
-
Matcher.new :match, expected do |_expected_|
|
15
|
-
match do |actual|
|
16
|
-
actual.match(_expected_)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,71 +0,0 @@
|
|
1
|
-
module Spec
|
2
|
-
module Matchers
|
3
|
-
|
4
|
-
class MatchArray #:nodoc:
|
5
|
-
include Spec::Matchers::Pretty
|
6
|
-
|
7
|
-
def initialize(expected)
|
8
|
-
@expected = expected
|
9
|
-
end
|
10
|
-
|
11
|
-
def matches?(actual)
|
12
|
-
@actual = actual
|
13
|
-
@extra_items = difference_between_arrays(@actual, @expected)
|
14
|
-
@missing_items = difference_between_arrays(@expected, @actual)
|
15
|
-
@extra_items.empty? & @missing_items.empty?
|
16
|
-
end
|
17
|
-
|
18
|
-
def failure_message_for_should
|
19
|
-
message = "expected collection contained: #{safe_sort(@expected).inspect}\n"
|
20
|
-
message += "actual collection contained: #{safe_sort(@actual).inspect}\n"
|
21
|
-
message += "the missing elements were: #{safe_sort(@missing_items).inspect}\n" unless @missing_items.empty?
|
22
|
-
message += "the extra elements were: #{safe_sort(@extra_items).inspect}\n" unless @extra_items.empty?
|
23
|
-
message
|
24
|
-
end
|
25
|
-
|
26
|
-
def failure_message_for_should_not
|
27
|
-
"Matcher does not support should_not"
|
28
|
-
end
|
29
|
-
|
30
|
-
def description
|
31
|
-
"contain exactly #{_pretty_print(@expected)}"
|
32
|
-
end
|
33
|
-
|
34
|
-
private
|
35
|
-
|
36
|
-
def safe_sort(array)
|
37
|
-
array.all?{|item| item.respond_to?(:<=>)} ? array.sort : array
|
38
|
-
end
|
39
|
-
|
40
|
-
def difference_between_arrays(array_1, array_2)
|
41
|
-
difference = array_1.dup
|
42
|
-
array_2.each do |element|
|
43
|
-
if index = difference.index(element)
|
44
|
-
difference.delete_at(index)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
difference
|
48
|
-
end
|
49
|
-
|
50
|
-
|
51
|
-
end
|
52
|
-
|
53
|
-
# :call-seq:
|
54
|
-
# should =~ expected
|
55
|
-
#
|
56
|
-
# Passes if actual contains all of the expected regardless of order.
|
57
|
-
# This works for collections. Pass in multiple args and it will only
|
58
|
-
# pass if all args are found in collection.
|
59
|
-
#
|
60
|
-
# NOTE: there is no should_not version of array.should =~ other_array
|
61
|
-
#
|
62
|
-
# == Examples
|
63
|
-
#
|
64
|
-
# [1,2,3].should =~ [1,2,3] # => would pass
|
65
|
-
# [1,2,3].should =~ [2,3,1] # => would pass
|
66
|
-
# [1,2,3,4].should =~ [1,2,3] # => would fail
|
67
|
-
# [1,2,2,3].should =~ [1,2,3] # => would fail
|
68
|
-
# [1,2,3].should =~ [1,2,3,4] # => would fail
|
69
|
-
OperatorMatcher.register(Array, '=~', Spec::Matchers::MatchArray)
|
70
|
-
end
|
71
|
-
end
|
@@ -1,132 +0,0 @@
|
|
1
|
-
module Spec
|
2
|
-
module Matchers
|
3
|
-
class Matcher
|
4
|
-
include Spec::Matchers::InstanceExec
|
5
|
-
include Spec::Matchers::Pretty
|
6
|
-
include Spec::Matchers
|
7
|
-
|
8
|
-
attr_reader :expected, :actual
|
9
|
-
|
10
|
-
def initialize(name, *expected, &declarations)
|
11
|
-
@name = name
|
12
|
-
@expected = expected
|
13
|
-
@actual = nil
|
14
|
-
@diffable = false
|
15
|
-
@expected_exception = nil
|
16
|
-
@messages = {
|
17
|
-
:description => lambda {"#{name_to_sentence}#{expected_to_sentence}"},
|
18
|
-
:failure_message_for_should => lambda {|actual| "expected #{actual.inspect} to #{name_to_sentence}#{expected_to_sentence}"},
|
19
|
-
:failure_message_for_should_not => lambda {|actual| "expected #{actual.inspect} not to #{name_to_sentence}#{expected_to_sentence}"}
|
20
|
-
}
|
21
|
-
making_declared_methods_public do
|
22
|
-
instance_exec(*@expected, &declarations)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
#Used internally by objects returns by +should+ and +should_not+.
|
27
|
-
def matches?(actual)
|
28
|
-
@actual = actual
|
29
|
-
if @expected_exception
|
30
|
-
begin
|
31
|
-
instance_exec(actual, &@match_block)
|
32
|
-
true
|
33
|
-
rescue @expected_exception
|
34
|
-
false
|
35
|
-
end
|
36
|
-
else
|
37
|
-
begin
|
38
|
-
instance_exec(actual, &@match_block)
|
39
|
-
rescue Spec::Expectations::ExpectationNotMetError
|
40
|
-
false
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
# See Spec::Matchers
|
46
|
-
def match(&block)
|
47
|
-
@match_block = block
|
48
|
-
end
|
49
|
-
|
50
|
-
# See Spec::Matchers
|
51
|
-
def match_unless_raises(exception=Exception, &block)
|
52
|
-
@expected_exception = exception
|
53
|
-
match(&block)
|
54
|
-
end
|
55
|
-
|
56
|
-
# See Spec::Matchers
|
57
|
-
def failure_message_for_should(&block)
|
58
|
-
cache_or_call_cached(:failure_message_for_should, &block)
|
59
|
-
end
|
60
|
-
|
61
|
-
# See Spec::Matchers
|
62
|
-
def failure_message_for_should_not(&block)
|
63
|
-
cache_or_call_cached(:failure_message_for_should_not, &block)
|
64
|
-
end
|
65
|
-
|
66
|
-
# See Spec::Matchers
|
67
|
-
def description(&block)
|
68
|
-
cache_or_call_cached(:description, &block)
|
69
|
-
end
|
70
|
-
|
71
|
-
#Used internally by objects returns by +should+ and +should_not+.
|
72
|
-
def diffable?
|
73
|
-
@diffable
|
74
|
-
end
|
75
|
-
|
76
|
-
# See Spec::Matchers
|
77
|
-
def diffable
|
78
|
-
@diffable = true
|
79
|
-
end
|
80
|
-
|
81
|
-
# See Spec::Matchers
|
82
|
-
def chain(method, &block)
|
83
|
-
self.class.class_eval do
|
84
|
-
define_method method do |*args|
|
85
|
-
block.call(*args)
|
86
|
-
self
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
private
|
92
|
-
|
93
|
-
def making_declared_methods_public # :nodoc:
|
94
|
-
# Our home-grown instance_exec in ruby 1.8.6 results in any methods
|
95
|
-
# declared in the block eval'd by instance_exec in the block to which we
|
96
|
-
# are yielding here are scoped private. This is NOT the case for Ruby
|
97
|
-
# 1.8.7 or 1.9.
|
98
|
-
#
|
99
|
-
# Also, due some crazy scoping that I don't understand, these methods
|
100
|
-
# are actually available in the specs (something about the matcher being
|
101
|
-
# defined in the scope of Spec::Matchers or within an example), so not
|
102
|
-
# doing the following will not cause specs to fail, but they *will*
|
103
|
-
# cause features to fail and that will make users unhappy. So don't.
|
104
|
-
orig_private_methods = private_methods
|
105
|
-
yield
|
106
|
-
st = (class << self; self; end)
|
107
|
-
(private_methods - orig_private_methods).each {|m| st.__send__ :public, m}
|
108
|
-
end
|
109
|
-
|
110
|
-
def cache_or_call_cached(key, &block)
|
111
|
-
block ? cache(key, &block) : call_cached(key)
|
112
|
-
end
|
113
|
-
|
114
|
-
def cache(key, &block)
|
115
|
-
@messages[key] = block
|
116
|
-
end
|
117
|
-
|
118
|
-
def call_cached(key)
|
119
|
-
@messages[key].arity == 1 ? @messages[key].call(@actual) : @messages[key].call
|
120
|
-
end
|
121
|
-
|
122
|
-
def name_to_sentence
|
123
|
-
split_words(@name)
|
124
|
-
end
|
125
|
-
|
126
|
-
def expected_to_sentence
|
127
|
-
to_sentence(@expected)
|
128
|
-
end
|
129
|
-
|
130
|
-
end
|
131
|
-
end
|
132
|
-
end
|
@@ -1,83 +0,0 @@
|
|
1
|
-
module Spec
|
2
|
-
module Matchers
|
3
|
-
|
4
|
-
class OperatorMatcher
|
5
|
-
class << self
|
6
|
-
def registry
|
7
|
-
@registry ||= {}
|
8
|
-
end
|
9
|
-
|
10
|
-
def register(klass, operator, matcher)
|
11
|
-
registry[klass] ||= {}
|
12
|
-
registry[klass][operator] = matcher
|
13
|
-
end
|
14
|
-
|
15
|
-
def get(klass, operator)
|
16
|
-
matcher = registry[klass] && registry[klass][operator]
|
17
|
-
unless matcher
|
18
|
-
parent_class = registry.keys.detect {|pc| klass <= pc }
|
19
|
-
matcher = registry[parent_class] && registry[parent_class][operator]
|
20
|
-
end
|
21
|
-
matcher
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def initialize(actual)
|
26
|
-
@actual = actual
|
27
|
-
end
|
28
|
-
|
29
|
-
def self.use_custom_matcher_or_delegate(operator)
|
30
|
-
define_method(operator) do |expected|
|
31
|
-
if matcher = OperatorMatcher.get(@actual.class, operator)
|
32
|
-
@actual.send(::Spec::Matchers.last_should, matcher.new(expected))
|
33
|
-
else
|
34
|
-
eval_match(@actual, operator, expected)
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
['==', '===', '=~', '>', '>=', '<', '<='].each do |operator|
|
40
|
-
use_custom_matcher_or_delegate operator
|
41
|
-
end
|
42
|
-
|
43
|
-
def fail_with_message(message)
|
44
|
-
Spec::Expectations.fail_with(message, @expected, @actual)
|
45
|
-
end
|
46
|
-
|
47
|
-
def description
|
48
|
-
"#{@operator} #{@expected.inspect}"
|
49
|
-
end
|
50
|
-
|
51
|
-
private
|
52
|
-
|
53
|
-
def eval_match(actual, operator, expected)
|
54
|
-
::Spec::Matchers.last_matcher = self
|
55
|
-
@operator, @expected = operator, expected
|
56
|
-
__delegate_operator(actual, operator, expected)
|
57
|
-
end
|
58
|
-
|
59
|
-
end
|
60
|
-
|
61
|
-
class PositiveOperatorMatcher < OperatorMatcher #:nodoc:
|
62
|
-
def __delegate_operator(actual, operator, expected)
|
63
|
-
if actual.__send__(operator, expected)
|
64
|
-
true
|
65
|
-
elsif ['==','===', '=~'].include?(operator)
|
66
|
-
fail_with_message("expected: #{expected.inspect},\n got: #{actual.inspect} (using #{operator})")
|
67
|
-
else
|
68
|
-
fail_with_message("expected: #{operator} #{expected.inspect},\n got: #{operator.gsub(/./, ' ')} #{actual.inspect}")
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
end
|
73
|
-
|
74
|
-
class NegativeOperatorMatcher < OperatorMatcher #:nodoc:
|
75
|
-
def __delegate_operator(actual, operator, expected)
|
76
|
-
return false unless actual.__send__(operator, expected)
|
77
|
-
return fail_with_message("expected not: #{operator} #{expected.inspect},\n got: #{operator.gsub(/./, ' ')} #{actual.inspect}")
|
78
|
-
end
|
79
|
-
|
80
|
-
end
|
81
|
-
|
82
|
-
end
|
83
|
-
end
|