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,38 +1,49 @@
|
|
|
1
|
-
require
|
|
1
|
+
require 'spec_helper'
|
|
2
2
|
module Spec
|
|
3
3
|
module Matchers
|
|
4
|
-
describe
|
|
5
|
-
it "
|
|
6
|
-
|
|
4
|
+
describe "[actual.should] be_close(expected, delta)" do
|
|
5
|
+
it "matches when actual == expected" do
|
|
6
|
+
be_close(5.0, 0.5).matches?(5.0).should be_true
|
|
7
7
|
end
|
|
8
|
-
it "
|
|
9
|
-
|
|
8
|
+
it "matches when actual < (expected + delta)" do
|
|
9
|
+
be_close(5.0, 0.5).matches?(5.49).should be_true
|
|
10
10
|
end
|
|
11
|
-
it "
|
|
12
|
-
|
|
11
|
+
it "matches when actual > (expected - delta)" do
|
|
12
|
+
be_close(5.0, 0.5).matches?(4.51).should be_true
|
|
13
13
|
end
|
|
14
|
-
it "
|
|
15
|
-
|
|
14
|
+
it "does not match when actual == (expected - delta)" do
|
|
15
|
+
be_close(5.0, 0.5).matches?(4.5).should be_false
|
|
16
16
|
end
|
|
17
|
-
it "
|
|
18
|
-
|
|
17
|
+
it "does not match when actual < (expected - delta)" do
|
|
18
|
+
be_close(5.0, 0.5).matches?(4.49).should be_false
|
|
19
19
|
end
|
|
20
|
-
it "
|
|
21
|
-
|
|
20
|
+
it "does not match when actual == (expected + delta)" do
|
|
21
|
+
be_close(5.0, 0.5).matches?(5.5).should be_false
|
|
22
22
|
end
|
|
23
|
-
it "
|
|
24
|
-
|
|
23
|
+
it "does not match when actual > (expected + delta)" do
|
|
24
|
+
be_close(5.0, 0.5).matches?(5.51).should be_false
|
|
25
25
|
end
|
|
26
|
-
it "
|
|
26
|
+
it "provides a failure message for should" do
|
|
27
27
|
#given
|
|
28
|
-
matcher =
|
|
28
|
+
matcher = be_close(5.0, 0.5)
|
|
29
29
|
#when
|
|
30
30
|
matcher.matches?(5.51)
|
|
31
31
|
#then
|
|
32
|
-
matcher.
|
|
32
|
+
matcher.failure_message_for_should.should == "expected 5.0 +/- (< 0.5), got 5.51"
|
|
33
33
|
end
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
|
|
35
|
+
it "provides a failure message for should tno" do
|
|
36
|
+
#given
|
|
37
|
+
matcher = be_close(5.0, 0.5)
|
|
38
|
+
#when
|
|
39
|
+
matcher.matches?(5.49)
|
|
40
|
+
#then
|
|
41
|
+
matcher.failure_message_for_should_not.should == "expected 5.0 +/- (< 0.5), got 5.49"
|
|
42
|
+
end
|
|
43
|
+
it "provides a description" do
|
|
44
|
+
matcher = be_close(5.0, 0.5)
|
|
45
|
+
matcher.matches?(5.1)
|
|
46
|
+
matcher.description.should == "be close to 5.0 (within +- 0.5)"
|
|
36
47
|
end
|
|
37
48
|
end
|
|
38
49
|
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
module Spec
|
|
4
|
+
module Matchers
|
|
5
|
+
[:be_an_instance_of, :be_instance_of].each do |method|
|
|
6
|
+
describe "actual.should #{method}(expected)" do
|
|
7
|
+
it "passes if actual is instance of expected class" do
|
|
8
|
+
5.should send(method, Fixnum)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "fails if actual is instance of subclass of expected class" do
|
|
12
|
+
lambda { 5.should send(method, Numeric) }.should fail_with(%Q{expected 5 to be an instance of Numeric})
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "fails with failure message for should unless actual is instance of expected class" do
|
|
16
|
+
lambda { "foo".should send(method, Array) }.should fail_with(%Q{expected "foo" to be an instance of Array})
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "provides a description" do
|
|
20
|
+
matcher = be_an_instance_of(Fixnum)
|
|
21
|
+
matcher.matches?(Numeric)
|
|
22
|
+
matcher.description.should == "be an instance of Fixnum"
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
describe "actual.should_not #{method}(expected)" do
|
|
27
|
+
|
|
28
|
+
it "fails with failure message for should_not if actual is instance of expected class" do
|
|
29
|
+
lambda { "foo".should_not send(method, String) }.should fail_with(%Q{expected "foo" not to be an instance of String})
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
module Spec
|
|
4
|
+
module Matchers
|
|
5
|
+
[:be_a_kind_of, :be_kind_of].each do |method|
|
|
6
|
+
describe "actual.should #{method}(expected)" do
|
|
7
|
+
it "passes if actual is instance of expected class" do
|
|
8
|
+
5.should send(method, Fixnum)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "passes if actual is instance of subclass of expected class" do
|
|
12
|
+
5.should send(method, Numeric)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "fails with failure message for should unless actual is kind of expected class" do
|
|
16
|
+
lambda { "foo".should send(method, Array) }.should fail_with(%Q{expected "foo" to be a kind of Array})
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "provides a description" do
|
|
20
|
+
matcher = be_a_kind_of(String)
|
|
21
|
+
matcher.matches?("this")
|
|
22
|
+
matcher.description.should == "be a kind of String"
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
describe "actual.should_not #{method}(expected)" do
|
|
27
|
+
it "fails with failure message for should_not if actual is kind of expected class" do
|
|
28
|
+
lambda { "foo".should_not send(method, String) }.should fail_with(%Q{expected "foo" not to be a kind of String})
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require
|
|
1
|
+
require 'spec_helper'
|
|
2
2
|
|
|
3
3
|
describe "should be_predicate" do
|
|
4
4
|
it "should pass when actual returns true for :predicate?" do
|
|
@@ -7,7 +7,7 @@ describe "should be_predicate" do
|
|
|
7
7
|
end
|
|
8
8
|
|
|
9
9
|
it "should pass when actual returns true for :predicates? (present tense)" do
|
|
10
|
-
actual = stub("actual", :exists? => true)
|
|
10
|
+
actual = stub("actual", :exists? => true, :exist? => true)
|
|
11
11
|
actual.should be_exist
|
|
12
12
|
end
|
|
13
13
|
|
|
@@ -18,10 +18,33 @@ describe "should be_predicate" do
|
|
|
18
18
|
}.should fail_with("expected happy? to return true, got false")
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
+
it "should fail when actual returns false for :predicate?" do
|
|
22
|
+
actual = stub("actual", :happy? => nil)
|
|
23
|
+
lambda {
|
|
24
|
+
actual.should be_happy
|
|
25
|
+
}.should fail_with("expected happy? to return true, got nil")
|
|
26
|
+
end
|
|
27
|
+
|
|
21
28
|
it "should fail when actual does not respond to :predicate?" do
|
|
22
29
|
lambda {
|
|
23
30
|
Object.new.should be_happy
|
|
24
|
-
}.should raise_error(NameError)
|
|
31
|
+
}.should raise_error(NameError, /happy\?/)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it "should fail on error other than NameError" do
|
|
35
|
+
actual = stub("actual")
|
|
36
|
+
actual.should_receive(:foo?).and_raise("aaaah")
|
|
37
|
+
lambda {
|
|
38
|
+
actual.should be_foo
|
|
39
|
+
}.should raise_error(/aaaah/)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
it "should fail on error other than NameError (with the present tense predicate)" do
|
|
43
|
+
actual = Object.new
|
|
44
|
+
actual.should_receive(:foos?).and_raise("aaaah")
|
|
45
|
+
lambda {
|
|
46
|
+
actual.should be_foo
|
|
47
|
+
}.should raise_error(/aaaah/)
|
|
25
48
|
end
|
|
26
49
|
end
|
|
27
50
|
|
|
@@ -31,6 +54,11 @@ describe "should_not be_predicate" do
|
|
|
31
54
|
actual.should_not be_happy
|
|
32
55
|
end
|
|
33
56
|
|
|
57
|
+
it "should pass when actual returns nil for :sym?" do
|
|
58
|
+
actual = stub("actual", :happy? => nil)
|
|
59
|
+
actual.should_not be_happy
|
|
60
|
+
end
|
|
61
|
+
|
|
34
62
|
it "should fail when actual returns true for :sym?" do
|
|
35
63
|
actual = stub("actual", :happy? => true)
|
|
36
64
|
lambda {
|
|
@@ -89,27 +117,143 @@ describe "should_not be_predicate(*args)" do
|
|
|
89
117
|
end
|
|
90
118
|
end
|
|
91
119
|
|
|
120
|
+
describe "should be_predicate(&block)" do
|
|
121
|
+
it "should pass when actual returns true for :predicate?(&block)" do
|
|
122
|
+
actual = mock("actual")
|
|
123
|
+
delegate = mock("delegate")
|
|
124
|
+
actual.should_receive(:happy?).and_yield
|
|
125
|
+
delegate.should_receive(:check_happy).and_return(true)
|
|
126
|
+
actual.should be_happy { delegate.check_happy }
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
it "should fail when actual returns false for :predicate?(&block)" do
|
|
130
|
+
actual = mock("actual")
|
|
131
|
+
delegate = mock("delegate")
|
|
132
|
+
actual.should_receive(:happy?).and_yield
|
|
133
|
+
delegate.should_receive(:check_happy).and_return(false)
|
|
134
|
+
lambda {
|
|
135
|
+
actual.should be_happy { delegate.check_happy }
|
|
136
|
+
}.should fail_with("expected happy? to return true, got false")
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
it "should fail when actual does not respond to :predicate?" do
|
|
140
|
+
delegate = mock("delegate", :check_happy => true)
|
|
141
|
+
lambda {
|
|
142
|
+
Object.new.should be_happy { delegate.check_happy }
|
|
143
|
+
}.should raise_error(NameError)
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
describe "should_not be_predicate(&block)" do
|
|
148
|
+
it "should pass when actual returns false for :predicate?(&block)" do
|
|
149
|
+
actual = mock("actual")
|
|
150
|
+
delegate = mock("delegate")
|
|
151
|
+
actual.should_receive(:happy?).and_yield
|
|
152
|
+
delegate.should_receive(:check_happy).and_return(false)
|
|
153
|
+
actual.should_not be_happy { delegate.check_happy }
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
it "should fail when actual returns true for :predicate?(&block)" do
|
|
157
|
+
actual = mock("actual")
|
|
158
|
+
delegate = mock("delegate")
|
|
159
|
+
actual.should_receive(:happy?).and_yield
|
|
160
|
+
delegate.should_receive(:check_happy).and_return(true)
|
|
161
|
+
lambda {
|
|
162
|
+
actual.should_not be_happy { delegate.check_happy }
|
|
163
|
+
}.should fail_with("expected happy? to return false, got true")
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
it "should fail when actual does not respond to :predicate?" do
|
|
167
|
+
delegate = mock("delegate", :check_happy => true)
|
|
168
|
+
lambda {
|
|
169
|
+
Object.new.should_not be_happy { delegate.check_happy }
|
|
170
|
+
}.should raise_error(NameError)
|
|
171
|
+
end
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
describe "should be_predicate(*args, &block)" do
|
|
175
|
+
it "should pass when actual returns true for :predicate?(*args, &block)" do
|
|
176
|
+
actual = mock("actual")
|
|
177
|
+
delegate = mock("delegate")
|
|
178
|
+
actual.should_receive(:older_than?).with(3).and_yield(3)
|
|
179
|
+
delegate.should_receive(:check_older_than).with(3).and_return(true)
|
|
180
|
+
actual.should be_older_than(3) { |age| delegate.check_older_than(age) }
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
it "should fail when actual returns false for :predicate?(*args, &block)" do
|
|
184
|
+
actual = mock("actual")
|
|
185
|
+
delegate = mock("delegate")
|
|
186
|
+
actual.should_receive(:older_than?).with(3).and_yield(3)
|
|
187
|
+
delegate.should_receive(:check_older_than).with(3).and_return(false)
|
|
188
|
+
lambda {
|
|
189
|
+
actual.should be_older_than(3) { |age| delegate.check_older_than(age) }
|
|
190
|
+
}.should fail_with("expected older_than?(3) to return true, got false")
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
it "should fail when actual does not respond to :predicate?" do
|
|
194
|
+
delegate = mock("delegate", :check_older_than => true)
|
|
195
|
+
lambda {
|
|
196
|
+
Object.new.should be_older_than(3) { |age| delegate.check_older_than(age) }
|
|
197
|
+
}.should raise_error(NameError)
|
|
198
|
+
end
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
describe "should_not be_predicate(*args, &block)" do
|
|
202
|
+
it "should pass when actual returns false for :predicate?(*args, &block)" do
|
|
203
|
+
actual = mock("actual")
|
|
204
|
+
delegate = mock("delegate")
|
|
205
|
+
actual.should_receive(:older_than?).with(3).and_yield(3)
|
|
206
|
+
delegate.should_receive(:check_older_than).with(3).and_return(false)
|
|
207
|
+
actual.should_not be_older_than(3) { |age| delegate.check_older_than(age) }
|
|
208
|
+
end
|
|
209
|
+
|
|
210
|
+
it "should fail when actual returns true for :predicate?(*args, &block)" do
|
|
211
|
+
actual = mock("actual")
|
|
212
|
+
delegate = mock("delegate")
|
|
213
|
+
actual.should_receive(:older_than?).with(3).and_yield(3)
|
|
214
|
+
delegate.should_receive(:check_older_than).with(3).and_return(true)
|
|
215
|
+
lambda {
|
|
216
|
+
actual.should_not be_older_than(3) { |age| delegate.check_older_than(age) }
|
|
217
|
+
}.should fail_with("expected older_than?(3) to return false, got true")
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
it "should fail when actual does not respond to :predicate?" do
|
|
221
|
+
delegate = mock("delegate", :check_older_than => true)
|
|
222
|
+
lambda {
|
|
223
|
+
Object.new.should_not be_older_than(3) { |age| delegate.check_older_than(age) }
|
|
224
|
+
}.should raise_error(NameError)
|
|
225
|
+
end
|
|
226
|
+
end
|
|
227
|
+
|
|
92
228
|
describe "should be_true" do
|
|
93
|
-
it "should pass when actual equal(true)" do
|
|
229
|
+
it "should pass when actual equal?(true)" do
|
|
94
230
|
true.should be_true
|
|
95
231
|
end
|
|
96
232
|
|
|
97
|
-
it "should
|
|
233
|
+
it "should pass when actual is 1" do
|
|
234
|
+
1.should be_true
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
it "should fail when actual equal?(false)" do
|
|
98
238
|
lambda {
|
|
99
239
|
false.should be_true
|
|
100
|
-
}.should fail_with("expected
|
|
240
|
+
}.should fail_with("expected false to be true")
|
|
101
241
|
end
|
|
102
242
|
end
|
|
103
243
|
|
|
104
244
|
describe "should be_false" do
|
|
105
|
-
it "should pass when actual equal(false)" do
|
|
245
|
+
it "should pass when actual equal?(false)" do
|
|
106
246
|
false.should be_false
|
|
107
247
|
end
|
|
108
248
|
|
|
109
|
-
it "should
|
|
249
|
+
it "should pass when actual equal?(nil)" do
|
|
250
|
+
nil.should be_false
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
it "should fail when actual equal?(true)" do
|
|
110
254
|
lambda {
|
|
111
255
|
true.should be_false
|
|
112
|
-
}.should fail_with("expected
|
|
256
|
+
}.should fail_with("expected true to be false")
|
|
113
257
|
end
|
|
114
258
|
end
|
|
115
259
|
|
|
@@ -145,6 +289,10 @@ describe "should be <" do
|
|
|
145
289
|
it "should fail when < operator returns false" do
|
|
146
290
|
lambda { 3.should be < 3 }.should fail_with("expected < 3, got 3")
|
|
147
291
|
end
|
|
292
|
+
|
|
293
|
+
it "should describe itself" do
|
|
294
|
+
be.<(4).description.should == "be < 4"
|
|
295
|
+
end
|
|
148
296
|
end
|
|
149
297
|
|
|
150
298
|
describe "should be <=" do
|
|
@@ -195,7 +343,45 @@ describe "should be ===" do
|
|
|
195
343
|
end
|
|
196
344
|
|
|
197
345
|
it "should fail when === operator returns false" do
|
|
198
|
-
lambda { Hash.should be === "not a hash" }.should fail_with(%[expected ===
|
|
346
|
+
lambda { Hash.should be === "not a hash" }.should fail_with(%[expected === not a hash, got Hash])
|
|
347
|
+
end
|
|
348
|
+
end
|
|
349
|
+
|
|
350
|
+
describe "should_not with operators" do
|
|
351
|
+
it "should coach user to stop using operators with should_not" do
|
|
352
|
+
lambda {
|
|
353
|
+
5.should_not be < 6
|
|
354
|
+
}.should raise_error(/not only FAILED,\nit is a bit confusing./m)
|
|
355
|
+
end
|
|
356
|
+
end
|
|
357
|
+
|
|
358
|
+
describe "should be" do
|
|
359
|
+
it "should pass if actual is truthy" do
|
|
360
|
+
true.should be
|
|
361
|
+
1.should be
|
|
362
|
+
end
|
|
363
|
+
|
|
364
|
+
it "should fail if actual is false" do
|
|
365
|
+
lambda {false.should be}.should fail_with("expected false to evaluate to true")
|
|
366
|
+
end
|
|
367
|
+
|
|
368
|
+
it "should fail if actual is nil" do
|
|
369
|
+
lambda {nil.should be}.should fail_with("expected nil to evaluate to true")
|
|
370
|
+
end
|
|
371
|
+
|
|
372
|
+
it "should describe itself" do
|
|
373
|
+
be.description.should == "be"
|
|
374
|
+
end
|
|
375
|
+
end
|
|
376
|
+
|
|
377
|
+
describe "should_not be" do
|
|
378
|
+
it "should pass if actual is falsy" do
|
|
379
|
+
false.should_not be
|
|
380
|
+
nil.should_not be
|
|
381
|
+
end
|
|
382
|
+
|
|
383
|
+
it "should fail on true" do
|
|
384
|
+
lambda {true.should_not be}.should fail_with("expected true to evaluate to false")
|
|
199
385
|
end
|
|
200
386
|
end
|
|
201
387
|
|
|
@@ -203,7 +389,72 @@ describe "should be(value)" do
|
|
|
203
389
|
it "should pass if actual.equal?(value)" do
|
|
204
390
|
5.should be(5)
|
|
205
391
|
end
|
|
392
|
+
|
|
206
393
|
it "should fail if !actual.equal?(value)" do
|
|
207
394
|
lambda { 5.should be(6) }.should fail_with("expected 6, got 5")
|
|
208
395
|
end
|
|
396
|
+
|
|
397
|
+
it "should describe itself" do
|
|
398
|
+
be(5).description.should == "be 5"
|
|
399
|
+
end
|
|
400
|
+
end
|
|
401
|
+
|
|
402
|
+
describe "should_not be(value)" do
|
|
403
|
+
it "should pass if !actual.equal?(value)" do
|
|
404
|
+
5.should_not be(6)
|
|
405
|
+
end
|
|
406
|
+
it "should fail if !actual.equal?(value)" do
|
|
407
|
+
lambda { 5.should_not be(5) }.should fail_with("expected not 5, got 5")
|
|
408
|
+
end
|
|
409
|
+
end
|
|
410
|
+
|
|
411
|
+
describe "'should be' with operator" do
|
|
412
|
+
it "should include 'be' in the description" do
|
|
413
|
+
(be > 6).description.should =~ /be > 6/
|
|
414
|
+
(be >= 6).description.should =~ /be >= 6/
|
|
415
|
+
(be <= 6).description.should =~ /be <= 6/
|
|
416
|
+
(be < 6).description.should =~ /be < 6/
|
|
417
|
+
end
|
|
418
|
+
end
|
|
419
|
+
|
|
420
|
+
|
|
421
|
+
describe "arbitrary predicate with DelegateClass" do
|
|
422
|
+
it "should access methods defined in the delegating class (LH[#48])" do
|
|
423
|
+
require 'delegate'
|
|
424
|
+
class ArrayDelegate < DelegateClass(Array)
|
|
425
|
+
def initialize(array)
|
|
426
|
+
@internal_array = array
|
|
427
|
+
super(@internal_array)
|
|
428
|
+
end
|
|
429
|
+
|
|
430
|
+
def large?
|
|
431
|
+
@internal_array.size >= 5
|
|
432
|
+
end
|
|
433
|
+
end
|
|
434
|
+
|
|
435
|
+
delegate = ArrayDelegate.new([1,2,3,4,5,6])
|
|
436
|
+
delegate.should be_large
|
|
437
|
+
end
|
|
438
|
+
end
|
|
439
|
+
|
|
440
|
+
describe "be_a, be_an" do
|
|
441
|
+
it "should pass when class matches" do
|
|
442
|
+
"foobar".should be_a(String)
|
|
443
|
+
[1,2,3].should be_an(Array)
|
|
444
|
+
end
|
|
445
|
+
|
|
446
|
+
it "should fail when class does not match" do
|
|
447
|
+
"foobar".should_not be_a(Hash)
|
|
448
|
+
[1,2,3].should_not be_an(Integer)
|
|
449
|
+
end
|
|
450
|
+
end
|
|
451
|
+
|
|
452
|
+
describe "be_an_instance_of" do
|
|
453
|
+
it "passes when direct class matches" do
|
|
454
|
+
5.should be_an_instance_of(Fixnum)
|
|
455
|
+
end
|
|
456
|
+
|
|
457
|
+
it "fails when class is higher up hierarchy" do
|
|
458
|
+
5.should_not be_an_instance_of(Numeric)
|
|
459
|
+
end
|
|
209
460
|
end
|