ageweke-rspec 1.2.9
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 +1496 -0
- data/License.txt +22 -0
- data/Manifest.txt +377 -0
- data/README.rdoc +55 -0
- data/Rakefile +145 -0
- data/Ruby1.9.rdoc +31 -0
- data/TODO.txt +17 -0
- data/Upgrade.rdoc +199 -0
- data/bin/autospec +4 -0
- data/bin/spec +5 -0
- 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/passing/custom_formatter.rb +11 -0
- data/examples/passing/custom_matchers.rb +54 -0
- data/examples/passing/dynamic_spec.rb +7 -0
- data/examples/passing/file_accessor.rb +18 -0
- data/examples/passing/file_accessor_spec.rb +37 -0
- data/examples/passing/filtered_formatter.rb +17 -0
- data/examples/passing/filtered_formatter_example.rb +31 -0
- data/examples/passing/greeter_spec.rb +30 -0
- data/examples/passing/helper_method_example.rb +12 -0
- data/examples/passing/implicit_docstrings_example.rb +16 -0
- data/examples/passing/io_processor.rb +8 -0
- data/examples/passing/io_processor_spec.rb +20 -0
- data/examples/passing/mocking_example.rb +25 -0
- data/examples/passing/multi_threaded_example_group_runner.rb +26 -0
- 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/passing/partial_mock_example.rb +27 -0
- data/examples/passing/pending_example.rb +18 -0
- data/examples/passing/predicate_example.rb +25 -0
- data/examples/passing/shared_example_group_example.rb +79 -0
- data/examples/passing/shared_stack_examples.rb +36 -0
- data/examples/passing/simple_matcher_example.rb +29 -0
- data/examples/passing/stack.rb +36 -0
- data/examples/passing/stack_spec.rb +63 -0
- data/examples/passing/stack_spec_with_nested_example_groups.rb +66 -0
- data/examples/passing/stubbing_example.rb +67 -0
- 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/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 +27 -0
- data/features/matchers/define_wrapped_matcher.feature +29 -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/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 +43 -0
- data/features/subject/explicit_subject.feature +31 -0
- data/features/subject/implicit_subject.feature +43 -0
- data/features/support/env.rb +82 -0
- data/features/support/matchers/smart_match.rb +12 -0
- data/init.rb +9 -0
- data/lib/autotest/discover.rb +3 -0
- data/lib/autotest/rspec.rb +47 -0
- data/lib/spec.rb +8 -0
- data/lib/spec/adapters/mock_frameworks/flexmock.rb +24 -0
- data/lib/spec/adapters/mock_frameworks/mocha.rb +25 -0
- 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 +40 -0
- data/lib/spec/dsl.rb +1 -0
- data/lib/spec/dsl/main.rb +92 -0
- data/lib/spec/example.rb +164 -0
- 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 +282 -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 +148 -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 +108 -0
- data/lib/spec/expectations.rb +35 -0
- data/lib/spec/expectations/errors.rb +12 -0
- data/lib/spec/expectations/extensions.rb +1 -0
- data/lib/spec/expectations/extensions/kernel.rb +52 -0
- data/lib/spec/expectations/fail_with.rb +45 -0
- data/lib/spec/expectations/handler.rb +50 -0
- data/lib/spec/interop/test.rb +44 -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 +34 -0
- data/lib/spec/interop/test/unit/ui/console/testrunner.rb +61 -0
- data/lib/spec/matchers.rb +195 -0
- data/lib/spec/matchers/be.rb +210 -0
- data/lib/spec/matchers/be_close.rb +32 -0
- 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 +151 -0
- data/lib/spec/matchers/compatibility.rb +14 -0
- data/lib/spec/matchers/dsl.rb +20 -0
- data/lib/spec/matchers/eql.rb +42 -0
- data/lib/spec/matchers/equal.rb +53 -0
- data/lib/spec/matchers/errors.rb +5 -0
- data/lib/spec/matchers/exist.rb +16 -0
- data/lib/spec/matchers/extensions/instance_exec.rb +31 -0
- data/lib/spec/matchers/generated_descriptions.rb +36 -0
- data/lib/spec/matchers/has.rb +35 -0
- data/lib/spec/matchers/have.rb +151 -0
- data/lib/spec/matchers/include.rb +44 -0
- data/lib/spec/matchers/match.rb +21 -0
- data/lib/spec/matchers/match_array.rb +71 -0
- data/lib/spec/matchers/matcher.rb +87 -0
- data/lib/spec/matchers/method_missing.rb +9 -0
- data/lib/spec/matchers/operator_matcher.rb +78 -0
- data/lib/spec/matchers/pretty.rb +37 -0
- data/lib/spec/matchers/raise_error.rb +129 -0
- data/lib/spec/matchers/respond_to.rb +71 -0
- data/lib/spec/matchers/satisfy.rb +47 -0
- data/lib/spec/matchers/simple_matcher.rb +133 -0
- data/lib/spec/matchers/throw_symbol.rb +104 -0
- data/lib/spec/matchers/wrap_expectation.rb +55 -0
- data/lib/spec/mocks.rb +200 -0
- data/lib/spec/mocks/argument_expectation.rb +51 -0
- data/lib/spec/mocks/argument_matchers.rb +237 -0
- data/lib/spec/mocks/error_generator.rb +92 -0
- data/lib/spec/mocks/errors.rb +10 -0
- data/lib/spec/mocks/example_methods.rb +69 -0
- data/lib/spec/mocks/extensions.rb +1 -0
- data/lib/spec/mocks/extensions/object.rb +3 -0
- data/lib/spec/mocks/framework.rb +15 -0
- data/lib/spec/mocks/message_expectation.rb +329 -0
- data/lib/spec/mocks/methods.rb +89 -0
- data/lib/spec/mocks/mock.rb +71 -0
- data/lib/spec/mocks/order_group.rb +29 -0
- data/lib/spec/mocks/proxy.rb +245 -0
- data/lib/spec/mocks/space.rb +28 -0
- data/lib/spec/rake/spectask.rb +230 -0
- data/lib/spec/rake/verify_rcov.rb +52 -0
- data/lib/spec/ruby.rb +9 -0
- data/lib/spec/runner.rb +66 -0
- data/lib/spec/runner/backtrace_tweaker.rb +77 -0
- data/lib/spec/runner/class_and_arguments_parser.rb +14 -0
- data/lib/spec/runner/command_line.rb +15 -0
- data/lib/spec/runner/configuration.rb +194 -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 +33 -0
- data/lib/spec/runner/example_group_runner.rb +59 -0
- data/lib/spec/runner/extensions/kernel.rb +9 -0
- data/lib/spec/runner/formatter/base_formatter.rb +139 -0
- data/lib/spec/runner/formatter/base_text_formatter.rb +142 -0
- data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +25 -0
- data/lib/spec/runner/formatter/failing_examples_formatter.rb +20 -0
- data/lib/spec/runner/formatter/html_formatter.rb +338 -0
- data/lib/spec/runner/formatter/nested_text_formatter.rb +47 -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 +33 -0
- data/lib/spec/runner/formatter/silent_formatter.rb +10 -0
- data/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
- data/lib/spec/runner/formatter/specdoc_formatter.rb +33 -0
- data/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
- data/lib/spec/runner/heckle_runner.rb +72 -0
- data/lib/spec/runner/heckle_runner_unsupported.rb +10 -0
- data/lib/spec/runner/line_number_query.rb +78 -0
- data/lib/spec/runner/option_parser.rb +225 -0
- data/lib/spec/runner/options.rb +406 -0
- data/lib/spec/runner/reporter.rb +171 -0
- data/lib/spec/stubs/cucumber.rb +5 -0
- data/lib/spec/test/unit.rb +10 -0
- data/lib/spec/version.rb +14 -0
- 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 +111 -0
- data/spec/ruby_forker.rb +13 -0
- data/spec/spec.opts +6 -0
- data/spec/spec/dsl/main_spec.rb +95 -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 +758 -0
- data/spec/spec/example/example_group_proxy_spec.rb +107 -0
- data/spec/spec/example/example_group_spec.rb +643 -0
- data/spec/spec/example/example_matcher_spec.rb +86 -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/example/nested_example_group_spec.rb +71 -0
- 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 +103 -0
- data/spec/spec/expectations/differs/default_spec.rb +194 -0
- data/spec/spec/expectations/extensions/kernel_spec.rb +45 -0
- data/spec/spec/expectations/fail_with_spec.rb +96 -0
- data/spec/spec/expectations/handler_spec.rb +206 -0
- data/spec/spec/expectations/wrap_expectation_spec.rb +30 -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 +50 -0
- 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 +311 -0
- data/spec/spec/matchers/change_spec.rb +349 -0
- data/spec/spec/matchers/compatibility_spec.rb +28 -0
- data/spec/spec/matchers/description_generation_spec.rb +160 -0
- data/spec/spec/matchers/dsl_spec.rb +34 -0
- data/spec/spec/matchers/eql_spec.rb +33 -0
- data/spec/spec/matchers/equal_spec.rb +57 -0
- data/spec/spec/matchers/exist_spec.rb +65 -0
- data/spec/spec/matchers/has_spec.rb +81 -0
- data/spec/spec/matchers/have_spec.rb +396 -0
- data/spec/spec/matchers/include_spec.rb +88 -0
- data/spec/spec/matchers/match_array_spec.rb +108 -0
- data/spec/spec/matchers/match_spec.rb +57 -0
- data/spec/spec/matchers/matcher_methods_spec.rb +63 -0
- data/spec/spec/matchers/matcher_spec.rb +228 -0
- data/spec/spec/matchers/matchers_spec.rb +2 -0
- data/spec/spec/matchers/operator_matcher_spec.rb +191 -0
- data/spec/spec/matchers/raise_error_spec.rb +333 -0
- data/spec/spec/matchers/respond_to_spec.rb +116 -0
- data/spec/spec/matchers/satisfy_spec.rb +36 -0
- data/spec/spec/matchers/simple_matcher_spec.rb +93 -0
- data/spec/spec/matchers/throw_symbol_spec.rb +96 -0
- data/spec/spec/mocks/any_number_of_times_spec.rb +36 -0
- data/spec/spec/mocks/argument_expectation_spec.rb +23 -0
- data/spec/spec/mocks/argument_matchers_spec.rb +19 -0
- data/spec/spec/mocks/at_least_spec.rb +97 -0
- data/spec/spec/mocks/at_most_spec.rb +93 -0
- data/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
- data/spec/spec/mocks/bug_report_10263_spec.rb +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 +19 -0
- data/spec/spec/mocks/bug_report_600_spec.rb +22 -0
- data/spec/spec/mocks/bug_report_7611_spec.rb +19 -0
- data/spec/spec/mocks/bug_report_7805_spec.rb +22 -0
- data/spec/spec/mocks/bug_report_8165_spec.rb +31 -0
- data/spec/spec/mocks/bug_report_8302_spec.rb +26 -0
- data/spec/spec/mocks/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 +94 -0
- data/spec/spec/mocks/mock_space_spec.rb +54 -0
- data/spec/spec/mocks/mock_spec.rb +594 -0
- data/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
- data/spec/spec/mocks/nil_expectation_warning_spec.rb +53 -0
- data/spec/spec/mocks/null_object_mock_spec.rb +54 -0
- data/spec/spec/mocks/once_counts_spec.rb +53 -0
- data/spec/spec/mocks/options_hash_spec.rb +35 -0
- data/spec/spec/mocks/partial_mock_spec.rb +164 -0
- data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +66 -0
- data/spec/spec/mocks/passing_argument_matchers_spec.rb +145 -0
- data/spec/spec/mocks/precise_counts_spec.rb +52 -0
- data/spec/spec/mocks/record_messages_spec.rb +26 -0
- data/spec/spec/mocks/stub_chain_spec.rb +42 -0
- data/spec/spec/mocks/stub_implementation_spec.rb +31 -0
- data/spec/spec/mocks/stub_spec.rb +203 -0
- data/spec/spec/mocks/stubbed_message_expectations_spec.rb +26 -0
- data/spec/spec/mocks/twice_counts_spec.rb +67 -0
- data/spec/spec/mocks/unstub_spec.rb +127 -0
- data/spec/spec/package/bin_spec_spec.rb +16 -0
- 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 +141 -0
- data/spec/spec/runner/configuration_spec.rb +320 -0
- data/spec/spec/runner/drb_command_line_spec.rb +148 -0
- 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 +33 -0
- 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 +118 -0
- data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +305 -0
- data/spec/spec/runner/formatter/profile_formatter_spec.rb +70 -0
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +149 -0
- data/spec/spec/runner/formatter/snippet_extractor_spec.rb +18 -0
- data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +159 -0
- 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 +78 -0
- data/spec/spec/runner/heckler_spec.rb +20 -0
- 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 +51 -0
- data/spec/spec/runner/option_parser_spec.rb +554 -0
- data/spec/spec/runner/options_spec.rb +554 -0
- 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 +105 -0
- data/spec/spec/runner/reporter_spec.rb +244 -0
- data/spec/spec/runner/resources/a_bar.rb +0 -0
- data/spec/spec/runner/resources/a_foo.rb +0 -0
- data/spec/spec/runner/resources/a_spec.rb +1 -0
- data/spec/spec/runner/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_helper.rb +112 -0
- data/spec/support/macros.rb +29 -0
- data/spec/support/spec_classes.rb +133 -0
- metadata +505 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
module Spec
|
|
4
|
+
module Mocks
|
|
5
|
+
describe "at_most" do
|
|
6
|
+
before(:each) do
|
|
7
|
+
@mock = Mock.new("test mock")
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
it "should fail when at most n times method is called n plus 1 times" do
|
|
11
|
+
@mock.should_receive(:random_call).at_most(4).times
|
|
12
|
+
@mock.random_call
|
|
13
|
+
@mock.random_call
|
|
14
|
+
@mock.random_call
|
|
15
|
+
@mock.random_call
|
|
16
|
+
@mock.random_call
|
|
17
|
+
lambda do
|
|
18
|
+
@mock.rspec_verify
|
|
19
|
+
end.should raise_error(MockExpectationError)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it "should fail when at most once method is called twice" do
|
|
23
|
+
@mock.should_receive(:random_call).at_most(:once)
|
|
24
|
+
@mock.random_call
|
|
25
|
+
@mock.random_call
|
|
26
|
+
lambda do
|
|
27
|
+
@mock.rspec_verify
|
|
28
|
+
end.should raise_error(MockExpectationError)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "should fail when at most twice method is called three times" do
|
|
32
|
+
@mock.should_receive(:random_call).at_most(:twice)
|
|
33
|
+
@mock.random_call
|
|
34
|
+
@mock.random_call
|
|
35
|
+
@mock.random_call
|
|
36
|
+
lambda do
|
|
37
|
+
@mock.rspec_verify
|
|
38
|
+
end.should raise_error(MockExpectationError)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it "should pass when at most n times method is called exactly n times" do
|
|
42
|
+
@mock.should_receive(:random_call).at_most(4).times
|
|
43
|
+
@mock.random_call
|
|
44
|
+
@mock.random_call
|
|
45
|
+
@mock.random_call
|
|
46
|
+
@mock.random_call
|
|
47
|
+
@mock.rspec_verify
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
it "should pass when at most n times method is called less than n times" do
|
|
51
|
+
@mock.should_receive(:random_call).at_most(4).times
|
|
52
|
+
@mock.random_call
|
|
53
|
+
@mock.random_call
|
|
54
|
+
@mock.random_call
|
|
55
|
+
@mock.rspec_verify
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
it "should pass when at most n times method is never called" do
|
|
59
|
+
@mock.should_receive(:random_call).at_most(4).times
|
|
60
|
+
@mock.rspec_verify
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
it "should pass when at most once method is called once" do
|
|
64
|
+
@mock.should_receive(:random_call).at_most(:once)
|
|
65
|
+
@mock.random_call
|
|
66
|
+
@mock.rspec_verify
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
it "should pass when at most once method is never called" do
|
|
70
|
+
@mock.should_receive(:random_call).at_most(:once)
|
|
71
|
+
@mock.rspec_verify
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
it "should pass when at most twice method is called once" do
|
|
75
|
+
@mock.should_receive(:random_call).at_most(:twice)
|
|
76
|
+
@mock.random_call
|
|
77
|
+
@mock.rspec_verify
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
it "should pass when at most twice method is called twice" do
|
|
81
|
+
@mock.should_receive(:random_call).at_most(:twice)
|
|
82
|
+
@mock.random_call
|
|
83
|
+
@mock.random_call
|
|
84
|
+
@mock.rspec_verify
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
it "should pass when at most twice method is never called" do
|
|
88
|
+
@mock.should_receive(:random_call).at_most(:twice)
|
|
89
|
+
@mock.rspec_verify
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
describe "Mock" do
|
|
2
|
+
before do
|
|
3
|
+
@mock = mock("test mock")
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
specify "when one example has an expectation (non-mock) inside the block passed to the mock" do
|
|
7
|
+
@mock.should_receive(:msg) do |b|
|
|
8
|
+
b.should be_true #this call exposes the problem
|
|
9
|
+
end
|
|
10
|
+
begin
|
|
11
|
+
@mock.msg(false)
|
|
12
|
+
rescue Exception
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
specify "then the next example should behave as expected instead of saying" do
|
|
17
|
+
@mock.should_receive(:foobar)
|
|
18
|
+
@mock.foobar
|
|
19
|
+
@mock.rspec_verify
|
|
20
|
+
begin
|
|
21
|
+
@mock.foobar
|
|
22
|
+
rescue Exception => e
|
|
23
|
+
e.message.should == "Mock \"test mock\" received unexpected message :foobar with (no args)"
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
class LiarLiarPantsOnFire
|
|
4
|
+
def respond_to?(sym, incl_private=false)
|
|
5
|
+
true
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def self.respond_to?(sym, incl_private=false)
|
|
9
|
+
true
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
describe 'should_receive' do
|
|
14
|
+
before(:each) do
|
|
15
|
+
@liar = LiarLiarPantsOnFire.new
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it "should work when object lies about responding to a method" do
|
|
19
|
+
@liar.should_receive(:something)
|
|
20
|
+
@liar.something
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it 'should work when class lies about responding to a method' do
|
|
24
|
+
LiarLiarPantsOnFire.should_receive(:something)
|
|
25
|
+
LiarLiarPantsOnFire.something
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it 'should cleanup after itself' do
|
|
29
|
+
(class << LiarLiarPantsOnFire; self; end).instance_methods.should_not include("something")
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
module Spec
|
|
4
|
+
module Mocks
|
|
5
|
+
describe "mock failure" do
|
|
6
|
+
|
|
7
|
+
it "should tell you when it receives the right message with the wrong args" do
|
|
8
|
+
m = mock("foo")
|
|
9
|
+
m.should_receive(:bar).with("message")
|
|
10
|
+
lambda {
|
|
11
|
+
m.bar("different message")
|
|
12
|
+
}.should raise_error(Spec::Mocks::MockExpectationError, %Q{Mock "foo" received :bar with unexpected arguments\n expected: ("message")\n got: ("different message")})
|
|
13
|
+
m.bar("message") # allows the spec to pass
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "should tell you when it receives the right message with the wrong args if you stub the method" do
|
|
17
|
+
pending("fix bug 15719")
|
|
18
|
+
# NOTE - for whatever reason, if you use a the block style of pending here,
|
|
19
|
+
# rcov gets unhappy. Don't know why yet.
|
|
20
|
+
m = mock("foo")
|
|
21
|
+
m.stub!(:bar)
|
|
22
|
+
m.should_receive(:bar).with("message")
|
|
23
|
+
lambda {
|
|
24
|
+
m.bar("different message")
|
|
25
|
+
}.should raise_error(Spec::Mocks::MockExpectationError, %Q{Mock "foo" received :bar with unexpected arguments\n expected: ("message")\n got: ("different message")})
|
|
26
|
+
m.bar("message") # allows the spec to pass
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
module BugReport496
|
|
4
|
+
class BaseClass
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
class SubClass < BaseClass
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
describe "a message expectation on a base class object" do
|
|
11
|
+
it "should correctly pick up message sent to it subclass" do
|
|
12
|
+
pending("fix for http://rspec.lighthouseapp.com/projects/5645/tickets/496") do
|
|
13
|
+
BaseClass.should_receive(:new).once
|
|
14
|
+
SubClass.new
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
module BugReport600
|
|
4
|
+
class ExampleClass
|
|
5
|
+
def self.method_that_uses_define_method
|
|
6
|
+
define_method "defined_method" do |attributes|
|
|
7
|
+
load_address(address, attributes)
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
describe "stubbing a class method" do
|
|
13
|
+
it "should work" do
|
|
14
|
+
ExampleClass.should_receive(:define_method).with("defined_method")
|
|
15
|
+
ExampleClass.method_that_uses_define_method
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it "should restore the original method" do
|
|
19
|
+
ExampleClass.method_that_uses_define_method
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
module Bug7611
|
|
4
|
+
class Foo
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
class Bar < Foo
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
describe "A Partial Mock" do
|
|
11
|
+
it "should respect subclasses" do
|
|
12
|
+
Foo.stub!(:new).and_return(Object.new)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should" do
|
|
16
|
+
Bar.new.class.should == Bar
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
module Bug7805
|
|
4
|
+
#This is really a duplicate of 8302
|
|
5
|
+
|
|
6
|
+
describe "Stubs should correctly restore module methods" do
|
|
7
|
+
it "1 - stub the open method" do
|
|
8
|
+
File.stub!(:open).and_return("something")
|
|
9
|
+
File.open.should == "something"
|
|
10
|
+
end
|
|
11
|
+
it "2 - use File.open to create example.txt" do
|
|
12
|
+
filename = "#{File.dirname(__FILE__)}/example-#{Time.new.to_i}.txt"
|
|
13
|
+
File.exist?(filename).should be_false
|
|
14
|
+
file = File.open(filename,'w')
|
|
15
|
+
file.close
|
|
16
|
+
File.exist?(filename).should be_true
|
|
17
|
+
File.delete(filename)
|
|
18
|
+
File.exist?(filename).should be_false
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe "An object where respond_to? is true and does not have method" do
|
|
4
|
+
# When should_receive(:sym) is sent to any object, the Proxy sends
|
|
5
|
+
# respond_to?(:sym) to that object to see if the method should be proxied.
|
|
6
|
+
#
|
|
7
|
+
# If respond_to? itself is proxied, then when the Proxy sends respond_to?
|
|
8
|
+
# to the object, the proxy is invoked and responds yes (if so set in the spec).
|
|
9
|
+
# When the object does NOT actually respond to :sym, an exception is thrown
|
|
10
|
+
# when trying to proxy it.
|
|
11
|
+
#
|
|
12
|
+
# The fix was to keep track of whether :respond_to? had been proxied and, if
|
|
13
|
+
# so, call the munged copy of :respond_to? on the object.
|
|
14
|
+
|
|
15
|
+
it "should not raise an exception for Object" do
|
|
16
|
+
obj = Object.new
|
|
17
|
+
obj.should_receive(:respond_to?).with(:foobar).and_return(true)
|
|
18
|
+
obj.should_receive(:foobar).and_return(:baz)
|
|
19
|
+
obj.respond_to?(:foobar).should be_true
|
|
20
|
+
obj.foobar.should == :baz
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it "should not raise an exception for mock" do
|
|
24
|
+
obj = mock("obj")
|
|
25
|
+
obj.should_receive(:respond_to?).with(:foobar).and_return(true)
|
|
26
|
+
obj.should_receive(:foobar).and_return(:baz)
|
|
27
|
+
obj.respond_to?(:foobar).should be_true
|
|
28
|
+
obj.foobar.should == :baz
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
module Bug8302
|
|
4
|
+
class Foo
|
|
5
|
+
def Foo.class_method(arg)
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def instance_bar(arg)
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
describe "Bug report 8302:" do
|
|
13
|
+
it "class method is not restored correctly when proxied" do
|
|
14
|
+
Foo.should_not_receive(:class_method).with(Array.new)
|
|
15
|
+
Foo.rspec_verify
|
|
16
|
+
Foo.class_method(Array.new)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "instance method is not restored correctly when proxied" do
|
|
20
|
+
foo = Foo.new
|
|
21
|
+
foo.should_not_receive(:instance_bar).with(Array.new)
|
|
22
|
+
foo.rspec_verify
|
|
23
|
+
foo.instance_bar(Array.new)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
module Spec
|
|
4
|
+
module Mocks
|
|
5
|
+
describe 'Calling a method that catches StandardError' do
|
|
6
|
+
class Foo
|
|
7
|
+
def self.foo
|
|
8
|
+
bar
|
|
9
|
+
rescue StandardError
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it 'still reports mock failures' do
|
|
14
|
+
Foo.should_not_receive :bar
|
|
15
|
+
lambda do
|
|
16
|
+
Foo.foo
|
|
17
|
+
end.should raise_error(MockExpectationError)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe "double" do
|
|
4
|
+
it "is an alias for stub and mock" do
|
|
5
|
+
double().should be_a(Spec::Mocks::Mock)
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it "uses 'Double' in failure messages" do
|
|
9
|
+
double = double('name')
|
|
10
|
+
expect {double.foo}.to raise_error(/Double "name" received/)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
module Spec
|
|
4
|
+
module Mocks
|
|
5
|
+
describe "failing MockArgumentMatchers" do
|
|
6
|
+
before(:each) do
|
|
7
|
+
@mock = mock("test mock")
|
|
8
|
+
@reporter = Mock.new("reporter", :null_object => true)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
after(:each) do
|
|
12
|
+
@mock.rspec_reset
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should reject non boolean" do
|
|
16
|
+
@mock.should_receive(:random_call).with(boolean())
|
|
17
|
+
lambda do
|
|
18
|
+
@mock.random_call("false")
|
|
19
|
+
end.should raise_error(MockExpectationError)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it "should reject non numeric" do
|
|
23
|
+
@mock.should_receive(:random_call).with(an_instance_of(Numeric))
|
|
24
|
+
lambda do
|
|
25
|
+
@mock.random_call("1")
|
|
26
|
+
end.should raise_error(MockExpectationError)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it "should reject non string" do
|
|
30
|
+
@mock.should_receive(:random_call).with(an_instance_of(String))
|
|
31
|
+
lambda do
|
|
32
|
+
@mock.random_call(123)
|
|
33
|
+
end.should raise_error(MockExpectationError)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it "should reject goose when expecting a duck" do
|
|
37
|
+
@mock.should_receive(:random_call).with(duck_type(:abs, :div))
|
|
38
|
+
lambda { @mock.random_call("I don't respond to :abs or :div") }.should raise_error(MockExpectationError)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it "should fail if regexp does not match submitted string" do
|
|
42
|
+
@mock.should_receive(:random_call).with(/bcd/)
|
|
43
|
+
lambda { @mock.random_call("abc") }.should raise_error(MockExpectationError)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it "should fail if regexp does not match submitted regexp" do
|
|
47
|
+
@mock.should_receive(:random_call).with(/bcd/)
|
|
48
|
+
lambda { @mock.random_call(/bcde/) }.should raise_error(MockExpectationError)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
it "should fail for a hash w/ wrong values" do
|
|
52
|
+
@mock.should_receive(:random_call).with(:a => "b", :c => "d")
|
|
53
|
+
lambda do
|
|
54
|
+
@mock.random_call(:a => "b", :c => "e")
|
|
55
|
+
end.should raise_error(MockExpectationError, /Mock "test mock" received :random_call with unexpected arguments\n expected: \(\{(:a=>\"b\", :c=>\"d\"|:c=>\"d\", :a=>\"b\")\}\)\n got: \(\{(:a=>\"b\", :c=>\"e\"|:c=>\"e\", :a=>\"b\")\}\)/)
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
it "should fail for a hash w/ wrong keys" do
|
|
59
|
+
@mock.should_receive(:random_call).with(:a => "b", :c => "d")
|
|
60
|
+
lambda do
|
|
61
|
+
@mock.random_call("a" => "b", "c" => "d")
|
|
62
|
+
end.should raise_error(MockExpectationError, /Mock "test mock" received :random_call with unexpected arguments\n expected: \(\{(:a=>\"b\", :c=>\"d\"|:c=>\"d\", :a=>\"b\")\}\)\n got: \(\{(\"a\"=>\"b\", \"c\"=>\"d\"|\"c\"=>\"d\", \"a\"=>\"b\")\}\)/)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
it "should match against a Matcher" do
|
|
66
|
+
lambda do
|
|
67
|
+
@mock.should_receive(:msg).with(equal(3))
|
|
68
|
+
@mock.msg(37)
|
|
69
|
+
end.should raise_error(MockExpectationError, "Mock \"test mock\" received :msg with unexpected arguments\n expected: (equal 3)\n got: (37)")
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
it "should fail no_args with one arg" do
|
|
73
|
+
lambda do
|
|
74
|
+
@mock.should_receive(:msg).with(no_args)
|
|
75
|
+
@mock.msg(37)
|
|
76
|
+
end.should raise_error(MockExpectationError, "Mock \"test mock\" received :msg with unexpected arguments\n expected: (no args)\n got: (37)")
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
it "should fail hash_including with missing key" do
|
|
80
|
+
lambda do
|
|
81
|
+
@mock.should_receive(:msg).with(hash_including(:a => 1))
|
|
82
|
+
@mock.msg({})
|
|
83
|
+
end.should raise_error(MockExpectationError, "Mock \"test mock\" received :msg with unexpected arguments\n expected: (hash_including(:a=>1))\n got: ({})")
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
it "should fail with block matchers" do
|
|
87
|
+
lambda do
|
|
88
|
+
@mock.should_receive(:msg).with {|arg| arg.should == :received }
|
|
89
|
+
@mock.msg :no_msg_for_you
|
|
90
|
+
end.should raise_error(Spec::Expectations::ExpectationNotMetError, /expected: :received.*\s*.*got: :no_msg_for_you/)
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|