rspec-instructure 1.3.3
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/.autotest +5 -0
- data/.document +7 -0
- data/.gitignore +15 -0
- data/Gemfile +20 -0
- data/History.rdoc +1565 -0
- data/License.txt +22 -0
- data/README.rdoc +44 -0
- data/Rakefile +110 -0
- 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 -0
- data/cucumber.yml +5 -0
- data/example_spec.rb +4 -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 +43 -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-pending/cli/conditional_exclusion.feature +39 -0
- data/features-pending/heckle/heckle.feature +56 -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 +37 -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/init.rb +9 -0
- data/lib/autotest/discover.rb +3 -0
- data/lib/autotest/rspec.rb +54 -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 +41 -0
- data/lib/spec/dsl.rb +1 -0
- data/lib/spec/dsl/main.rb +93 -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 +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/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/extensions/instance_exec.rb +31 -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 +36 -0
- data/lib/spec/interop/test/unit/ui/console/testrunner.rb +61 -0
- data/lib/spec/matchers.rb +214 -0
- data/lib/spec/matchers/be.rb +249 -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/generated_descriptions.rb +36 -0
- data/lib/spec/matchers/has.rb +35 -0
- data/lib/spec/matchers/have.rb +152 -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 +132 -0
- data/lib/spec/matchers/method_missing.rb +9 -0
- data/lib/spec/matchers/operator_matcher.rb +83 -0
- data/lib/spec/matchers/pretty.rb +37 -0
- data/lib/spec/matchers/raise_exception.rb +131 -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 +134 -0
- data/lib/spec/matchers/throw_symbol.rb +100 -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 +344 -0
- data/lib/spec/mocks/methods.rb +94 -0
- data/lib/spec/mocks/mock.rb +71 -0
- data/lib/spec/mocks/order_group.rb +29 -0
- data/lib/spec/mocks/proxy.rb +254 -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 +78 -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 +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 +32 -0
- data/lib/spec/runner/example_group_runner.rb +62 -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 +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 +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 +77 -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/rspec.gemspec +26 -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.opts +6 -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/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 +110 -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 +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 +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 +460 -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 +190 -0
- data/spec/spec/matchers/have_spec.rb +381 -0
- data/spec/spec/matchers/include_spec.rb +88 -0
- data/spec/spec/matchers/match_array_spec.rb +115 -0
- data/spec/spec/matchers/match_spec.rb +57 -0
- 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 +191 -0
- data/spec/spec/matchers/pretty_spec.rb +22 -0
- data/spec/spec/matchers/raise_exception_spec.rb +345 -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 +100 -0
- data/spec/spec/matchers/throw_symbol_spec.rb +121 -0
- data/spec/spec/mocks/and_yield_spec.rb +117 -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_1049_spec.rb +30 -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 +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/bug_report_957_spec.rb +22 -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 +601 -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 +162 -0
- data/spec/spec/runner/configuration_spec.rb +320 -0
- data/spec/spec/runner/drb_command_line_spec.rb +146 -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_formatted-1.9.2.html +377 -0
- data/spec/spec/runner/formatter/html_formatter_spec.rb +118 -0
- 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 +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_formatted-1.9.2.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 +552 -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 +123 -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 +113 -0
- data/spec/support/macros.rb +29 -0
- data/spec/support/spec_classes.rb +133 -0
- metadata +727 -0
data/License.txt
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
(The MIT License)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2005-2010 The RSpec Development Team
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
+
a copy of this software and associated documentation files (the
|
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
11
|
+
the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be
|
|
14
|
+
included in all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
19
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
20
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
21
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
22
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
== RSpec
|
|
2
|
+
|
|
3
|
+
Behaviour Driven Development for Ruby
|
|
4
|
+
|
|
5
|
+
This is the repository for rspec-1.x. For more information, please
|
|
6
|
+
see http://rspec.info.
|
|
7
|
+
|
|
8
|
+
If you're looking for rspec-2 (and if you're not, what are you waiting for?),
|
|
9
|
+
see:
|
|
10
|
+
|
|
11
|
+
* http://relishapp.com/rspec
|
|
12
|
+
* http://github.com/rspec/rspec
|
|
13
|
+
|
|
14
|
+
== Install
|
|
15
|
+
|
|
16
|
+
gem install rspec
|
|
17
|
+
|
|
18
|
+
== Synopsis
|
|
19
|
+
|
|
20
|
+
describe Account do
|
|
21
|
+
context "transfering money" do
|
|
22
|
+
it "deposits transfer amount to the other account" do
|
|
23
|
+
source = Account.new(50, :USD)
|
|
24
|
+
target = mock('target account')
|
|
25
|
+
target.should_receive(:deposit).with(Money.new(5, :USD))
|
|
26
|
+
source.transfer(5, :USD).to(target)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it "reduces its balance by the transfer amount" do
|
|
30
|
+
source = Account.new(50, :USD)
|
|
31
|
+
target = stub('target account')
|
|
32
|
+
source.transfer(5, :USD).to(target)
|
|
33
|
+
source.balance.should == Money.new(45, :USD)
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
$ spec ./spec/account_spec.rb --format nested
|
|
39
|
+
Account
|
|
40
|
+
transfering money
|
|
41
|
+
deposits transfer amount to the other account
|
|
42
|
+
reduces its balance by the transfer amount
|
|
43
|
+
|
|
44
|
+
2 examples, 0 failures
|
data/Rakefile
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
require 'bundler'
|
|
2
|
+
Bundler::GemHelper.install_tasks
|
|
3
|
+
|
|
4
|
+
$:.unshift 'lib'
|
|
5
|
+
|
|
6
|
+
require 'spec/version'
|
|
7
|
+
require 'spec/rake/spectask'
|
|
8
|
+
require 'spec/ruby'
|
|
9
|
+
|
|
10
|
+
# Some of the tasks are in separate files since they are also part of the website documentation
|
|
11
|
+
load 'resources/rake/examples.rake'
|
|
12
|
+
load 'resources/rake/examples_with_rcov.rake'
|
|
13
|
+
load 'resources/rake/failing_examples_with_html.rake'
|
|
14
|
+
load 'resources/rake/verify_rcov.rake'
|
|
15
|
+
|
|
16
|
+
task :cleanup_rcov_files do
|
|
17
|
+
rm_rf 'coverage.data'
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
if RUBY_VERSION =~ /^1.8/
|
|
21
|
+
task :default => [:cleanup_rcov_files, :features, :verify_rcov]
|
|
22
|
+
else
|
|
23
|
+
task :default => [:spec, :features]
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
desc "Run all specs"
|
|
27
|
+
Spec::Rake::SpecTask.new(:spec) do |t|
|
|
28
|
+
t.spec_files = FileList['spec/**/*_spec.rb']
|
|
29
|
+
t.spec_opts = ['--options', 'spec/spec.opts']
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
namespace :spec do
|
|
33
|
+
desc "Run all specs with rcov"
|
|
34
|
+
Spec::Rake::SpecTask.new(:rcov) do |t|
|
|
35
|
+
t.spec_files = FileList['spec/**/*_spec.rb']
|
|
36
|
+
t.spec_opts = ['--options', 'spec/spec.opts']
|
|
37
|
+
t.rcov = true
|
|
38
|
+
t.rcov_dir = 'coverage'
|
|
39
|
+
t.rcov_opts = ['--exclude', "features,kernel,load-diff-lcs\.rb,instance_exec\.rb,lib/spec.rb,lib/spec/runner.rb,^spec/*,bin/spec,examples,/gems,/Library/Ruby,\.autotest,#{ENV['GEM_HOME']}"]
|
|
40
|
+
t.rcov_opts << '--sort coverage --text-summary --aggregate coverage.data'
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
desc "Run files listed in spec/spec_files.txt"
|
|
44
|
+
Spec::Rake::SpecTask.new(:focus) do |t|
|
|
45
|
+
if File.exists?('spec/spec_files.txt')
|
|
46
|
+
t.spec_files = File.readlines('spec/spec_files.txt').collect{|f| f.chomp}
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
begin
|
|
52
|
+
require 'cucumber/rake/task'
|
|
53
|
+
desc "Run Cucumber features"
|
|
54
|
+
if RUBY_VERSION =~ /^1.8/
|
|
55
|
+
Cucumber::Rake::Task.new :features do |t|
|
|
56
|
+
t.rcov = true
|
|
57
|
+
t.rcov_opts = ['--exclude', "features,kernel,load-diff-lcs\.rb,instance_exec\.rb,lib/spec.rb,lib/spec/runner.rb,^spec/*,bin/spec,examples,/gems,/Library/Ruby,\.autotest,#{ENV['GEM_HOME']}"]
|
|
58
|
+
t.rcov_opts << '--no-html --aggregate coverage.data'
|
|
59
|
+
t.cucumber_opts = %w{--format progress}
|
|
60
|
+
end
|
|
61
|
+
else
|
|
62
|
+
task :features do
|
|
63
|
+
sh 'cucumber --profile no_heckle'
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
rescue LoadError
|
|
67
|
+
puts "You need cucumber installed to run cucumber tasks"
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
desc "Run failing examples (see failure output)"
|
|
71
|
+
Spec::Rake::SpecTask.new('failing_examples') do |t|
|
|
72
|
+
t.spec_files = FileList['failing_examples/**/*_spec.rb']
|
|
73
|
+
t.spec_opts = ['--options', 'spec/spec.opts']
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def egrep(pattern)
|
|
77
|
+
Dir['**/*.rb'].each do |fn|
|
|
78
|
+
count = 0
|
|
79
|
+
open(fn) do |f|
|
|
80
|
+
while line = f.gets
|
|
81
|
+
count += 1
|
|
82
|
+
if line =~ pattern
|
|
83
|
+
puts "#{fn}:#{count}:#{line}"
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
desc "Look for TODO and FIXME tags in the code"
|
|
91
|
+
task :todo do
|
|
92
|
+
egrep /(FIXME|TODO|TBD)/
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
desc "Verifies that there is no uncommitted code"
|
|
96
|
+
task :verify_committed do
|
|
97
|
+
IO.popen('git status') do |io|
|
|
98
|
+
io.each_line do |line|
|
|
99
|
+
raise "\n!!! Do a git commit first !!!\n\n" if line =~ /^#\s*modified:/
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
task :clobber => :clobber_tmp
|
|
105
|
+
|
|
106
|
+
task :clobber_tmp do
|
|
107
|
+
cmd = %q[rm -r tmp]
|
|
108
|
+
puts cmd
|
|
109
|
+
system cmd if test ?d, 'tmp'
|
|
110
|
+
end
|
data/Ruby1.9.rdoc
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
= RSpec and Ruby 1.9
|
|
2
|
+
|
|
3
|
+
RSpec runs on Ruby 1.9.1 with the following caveats.
|
|
4
|
+
|
|
5
|
+
== Test::Unit
|
|
6
|
+
|
|
7
|
+
RSpec/Test::Unit interop will run with the test-unit-1.2.3 gem, but you must install it.
|
|
8
|
+
|
|
9
|
+
== Class Variables
|
|
10
|
+
|
|
11
|
+
Due to changes in scoping rules, class variables within example groups are not
|
|
12
|
+
supported in Ruby 1.9.
|
|
13
|
+
|
|
14
|
+
describe "a class variable" do
|
|
15
|
+
@@class_variable = "a class variable"
|
|
16
|
+
|
|
17
|
+
it "can access class variables in examples in Ruby 1.8" do
|
|
18
|
+
with_ruby 1.8 do
|
|
19
|
+
@@class_variable.should == "a class variable"
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it "can NOT access class variables in examples in Ruby 1.9" do
|
|
24
|
+
with_ruby 1.9 do
|
|
25
|
+
lambda do
|
|
26
|
+
@@class_variable.should == "a class variable"
|
|
27
|
+
end.should raise_error(NameError)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
data/TODO.txt
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
== Refactoring
|
|
2
|
+
|
|
3
|
+
** global predictate matchers should be stored in run_options
|
|
4
|
+
* eliminate dependency on global options and configuration
|
|
5
|
+
** the only place they should exist is in the Runner, which should manage them
|
|
6
|
+
|
|
7
|
+
== Future
|
|
8
|
+
|
|
9
|
+
* do SOMETHING with the website
|
|
10
|
+
* separate the underlying framework from the DSL
|
|
11
|
+
* be able to do everything with classes and methods
|
|
12
|
+
* tweak raise_error rdoc to show only one arg
|
|
13
|
+
|
|
14
|
+
== rspec-2.0
|
|
15
|
+
|
|
16
|
+
* rename top level namespace to Rspec and commands to 'rspec' and 'autorspec'
|
|
17
|
+
* continue to support Spec 'spec' and 'autospec' as aliases for a reasonable time
|
data/Upgrade.rdoc
ADDED
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
= Upgrade to 1.3.0
|
|
2
|
+
|
|
3
|
+
== What's changed
|
|
4
|
+
|
|
5
|
+
=== +be_true+ and +be_false+
|
|
6
|
+
|
|
7
|
+
These methods now align with Ruby's conditional semantics:
|
|
8
|
+
|
|
9
|
+
* +be_false+ passes for +false+ and +nil+
|
|
10
|
+
* +be_true+ passes for everything else
|
|
11
|
+
|
|
12
|
+
This is a change from the previous behaviour (which wasn't working correctly
|
|
13
|
+
anyway), which was supposed to treat +be_true+ as <tt>equal(true)</tt>, and +be_false+ as
|
|
14
|
+
<tt>equal(false)</tt>.
|
|
15
|
+
|
|
16
|
+
If the actual values +true+ and +false+ are meaningful to your examples, you'll
|
|
17
|
+
want to change the to use <tt>equal(true)</tt> and <tt>equal(false)</tt> (or
|
|
18
|
+
<tt>==(true)</tt> and <tt>==(false)</tt>).
|
|
19
|
+
|
|
20
|
+
=== +raise_exception+
|
|
21
|
+
|
|
22
|
+
We changed the +raise_error+ matcher to +raise_exception+, and aliased it with
|
|
23
|
+
+raise_error+. This maintains backward compatibility, and also gives you the
|
|
24
|
+
option of being more precise in specs about what is expected.
|
|
25
|
+
|
|
26
|
+
=== Matcher DSL
|
|
27
|
+
|
|
28
|
+
==== +match+ rescues from +ExpectationNotMetErrror+ by default
|
|
29
|
+
|
|
30
|
+
This allows you to wrap other expectations in the +match+ method. Consider
|
|
31
|
+
this matcher:
|
|
32
|
+
|
|
33
|
+
Spec::Matchers.define :teach do |subject|
|
|
34
|
+
match do |teacher|
|
|
35
|
+
teacher.subjects.should include(subject)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
The block passed to +match+ is called internally by Rspec, and is expected to
|
|
40
|
+
return a boolean value. In this case, if <tt>should include(subject)</tt>
|
|
41
|
+
fails, it raises an +ExpectationNotMetError+.
|
|
42
|
+
|
|
43
|
+
Beginning with rspec-1.3.0, when the match block raises an
|
|
44
|
+
+ExpectationNotMetError+, it is captured and the block returns +false+.
|
|
45
|
+
Otherwise it returns +true+, so it works like any other matcher.
|
|
46
|
+
|
|
47
|
+
==== match_unless_raises
|
|
48
|
+
|
|
49
|
+
The new +match_unless_raises+ method allows you to wrap <tt>Test::Unit</tt>
|
|
50
|
+
assertions by capturing +AssertionFailedError+ and returning false, just as the
|
|
51
|
+
+match+ method now does with +ExpectationNotMetError+.
|
|
52
|
+
|
|
53
|
+
Spec::Matchers.define :teach do |subject|
|
|
54
|
+
match_unless_raises Test::Unit::AssertionFailedError do |teacher|
|
|
55
|
+
assert teacher.subjects.include?(subject)
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
= Upgrade to rspec-1.2.9
|
|
60
|
+
|
|
61
|
+
== What's new
|
|
62
|
+
|
|
63
|
+
=== spec/spec.opts
|
|
64
|
+
|
|
65
|
+
If you have a spec/spec.opts file, the spec command will now use that
|
|
66
|
+
automatically as long as you don't include any options on the command line.
|
|
67
|
+
|
|
68
|
+
=== let()
|
|
69
|
+
|
|
70
|
+
Writing specs tends to follow a regular pattern of using local variables,
|
|
71
|
+
discovering duplication, and then having to convert to local variables to
|
|
72
|
+
instance variables by adding an "@" symbol. The let() method assigns the result
|
|
73
|
+
of a lazy eval'd block as the return value of an instance method using the same
|
|
74
|
+
name. This way you can go from this:
|
|
75
|
+
|
|
76
|
+
describe Subscription do
|
|
77
|
+
it "does something" do
|
|
78
|
+
subscription = Subscription.create :limit => 1
|
|
79
|
+
subscription...
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
it "does something else" do
|
|
83
|
+
subscription = Subscription.create :limit => 1
|
|
84
|
+
subscription...
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
to this:
|
|
89
|
+
|
|
90
|
+
describe Subscription do
|
|
91
|
+
let(:subscription) { Subscription.create :limit => 1 }
|
|
92
|
+
|
|
93
|
+
it "does something" do
|
|
94
|
+
subscription...
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
it "does something else" do
|
|
98
|
+
subscription...
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
=== its()
|
|
103
|
+
|
|
104
|
+
If you're in the habit of writing one-liners using implicit subject, this new
|
|
105
|
+
its() feature is for you. Here's the basic idea:
|
|
106
|
+
|
|
107
|
+
describe Array do
|
|
108
|
+
its(:length) { should == 0 }
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
= Upgrade to rspec-1.2.3-1.2.7
|
|
112
|
+
|
|
113
|
+
== What's Changed
|
|
114
|
+
|
|
115
|
+
=== Matcher DSL
|
|
116
|
+
|
|
117
|
+
Use Spec::Matchers.define instead of Spec::Matchers.create (which is now
|
|
118
|
+
deprecated).
|
|
119
|
+
|
|
120
|
+
=== Explicit Predicate Matchers are deprecated
|
|
121
|
+
|
|
122
|
+
With the addition of the new Matcher DSL the old, confusing, and
|
|
123
|
+
almost-nobody-uses-it explicit predicate matcher functionality's days are now
|
|
124
|
+
numbered.
|
|
125
|
+
|
|
126
|
+
If you're not familiar with this feature, don't worry about it. If you have anything
|
|
127
|
+
that looks like this:
|
|
128
|
+
|
|
129
|
+
predicate_matchers[:swim] = :can_swim?
|
|
130
|
+
|
|
131
|
+
Or this
|
|
132
|
+
|
|
133
|
+
config.predicate_matchers[:swim] = :can_swim?
|
|
134
|
+
|
|
135
|
+
Change it to this:
|
|
136
|
+
|
|
137
|
+
Spec::Matchers.define :swim do
|
|
138
|
+
match do |potential_swimmer|
|
|
139
|
+
potential_swimmer.can_swim?
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
== Custom Formatters
|
|
144
|
+
|
|
145
|
+
If you have an custom formatter, the <tt>add_example_group</tt> method has
|
|
146
|
+
been changed to <tt>example_group_started</tt>, and kept as an alias so your
|
|
147
|
+
formatters will still work. Though not yet, <tt>add_example_group</tt> will be
|
|
148
|
+
deprecated in a future minor release, and removed in a future major release,
|
|
149
|
+
so we recommend you make this change now.
|
|
150
|
+
|
|
151
|
+
= Upgrade to rspec-1.2.2
|
|
152
|
+
|
|
153
|
+
== What's Changed
|
|
154
|
+
|
|
155
|
+
=== <tt>require 'rubygems' unless ENV['NO_RUBYGEMS']</tt>
|
|
156
|
+
|
|
157
|
+
After minor public outcry and confusion, we restored necessary references to
|
|
158
|
+
rubygems in rspec. If you use a different mechanism for managing gems, just
|
|
159
|
+
set a <tt>NO_RUBYGEMS</tt> environment variable (to any non-nil value).
|
|
160
|
+
|
|
161
|
+
=== Proxies and locations
|
|
162
|
+
|
|
163
|
+
This is probably only interesting to you if you use custom formatters.
|
|
164
|
+
|
|
165
|
+
Formatters now receive Spec::Example::ExampleGroupProxy and
|
|
166
|
+
Spec::Example::ExampleGroup objects with cohesive APIs for reporting. See the
|
|
167
|
+
RDoc for those classes and Spec::Runner::Formatter::BaseFormatter for more
|
|
168
|
+
information.
|
|
169
|
+
|
|
170
|
+
== What's new
|
|
171
|
+
|
|
172
|
+
=== The new matcher DSL works with test/unit (without the rest of rspec)
|
|
173
|
+
|
|
174
|
+
We'll be separating this out to its own gem for rspec 2.0, but for now, just install
|
|
175
|
+
rspec >= 1.2.1 and add the following to your <tt>test_helper</tt> file:
|
|
176
|
+
|
|
177
|
+
require 'spec/expectations'
|
|
178
|
+
class Test::Unit::TestCase
|
|
179
|
+
include Spec::Matchers
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
This will add <tt>should()</tt> and <tt>should_not()</tt> to your objects, make all of
|
|
183
|
+
rspec's built-in matchers available to your tests, INCLUDING rspec's DSL for
|
|
184
|
+
creating matchers (see below, under Upgrade to rspec-1.2.0)
|
|
185
|
+
|
|
186
|
+
=== debugger
|
|
187
|
+
|
|
188
|
+
If you have ruby-debug installed, you can set a breakpoint by adding <tt>debugger()</tt>
|
|
189
|
+
in your code:
|
|
190
|
+
|
|
191
|
+
# some code .....
|
|
192
|
+
debugger
|
|
193
|
+
# some more code ....
|
|
194
|
+
|
|
195
|
+
... and using the <tt>--debugger</tt> or <tt>-u</tt> command line option.
|
|
196
|
+
|
|
197
|
+
spec path/to/file.rb --debugger
|
|
198
|
+
|
|
199
|
+
= Upgrade to rspec-1.2.0
|
|
200
|
+
|
|
201
|
+
== What's Changed
|
|
202
|
+
|
|
203
|
+
=== WARNINGS
|
|
204
|
+
|
|
205
|
+
* If you use the ruby command to run specs instead of the spec command, you'll
|
|
206
|
+
need to require 'spec/autorun' or they won't run. This won't affect you if
|
|
207
|
+
you use the spec command or the Spec::Rake::SpecTask that ships with RSpec.
|
|
208
|
+
|
|
209
|
+
* require 'spec/test/unit' to invoke test/unit interop if you're using
|
|
210
|
+
RSpec's core (this is handled implicitly with spec-rails)
|
|
211
|
+
|
|
212
|
+
* setup and teardown are gone - use before and after instead
|
|
213
|
+
|
|
214
|
+
* you can still use setup and teardown if you're using
|
|
215
|
+
Test::Unit::TestCase as the base ExampleGroup class (which is implicit
|
|
216
|
+
in rspec-rails)
|
|
217
|
+
|
|
218
|
+
* The matcher protocol has been improved. The old protocol is still supported,
|
|
219
|
+
but we added support for two new methods that speak a bit more clearly:
|
|
220
|
+
|
|
221
|
+
failure_message => failure_message_for_should
|
|
222
|
+
negative_failure_message => failure_message_for_should_not
|
|
223
|
+
|
|
224
|
+
* All references to rubygems have been removed from within rspec's code.
|
|
225
|
+
|
|
226
|
+
* See http://gist.github.com/54177 for rationale and suggestions on
|
|
227
|
+
alternative approaches to loading rubygems
|
|
228
|
+
|
|
229
|
+
== What's New
|
|
230
|
+
|
|
231
|
+
=== Ruby 1.9
|
|
232
|
+
|
|
233
|
+
RSpec now works with Ruby 1.9.1. See http://wiki.github.com/dchelimsky/rspec/ruby-191
|
|
234
|
+
for useful information.
|
|
235
|
+
|
|
236
|
+
=== Improved heckle integration
|
|
237
|
+
|
|
238
|
+
RSpec works with heckle again! Gotta use heckle >= 1.4.2 for this to work
|
|
239
|
+
though, and it only works with ruby-1.8.6 and 1.8.7 (heckle doesn't support
|
|
240
|
+
1.9.1 yet).
|
|
241
|
+
|
|
242
|
+
[sudo] gem install heckle --version ">=1.4.2"
|
|
243
|
+
spec spec/game/mastermind.rb --heckle Game::Mastermind
|
|
244
|
+
|
|
245
|
+
=== New Matcher DSL
|
|
246
|
+
|
|
247
|
+
We've added a new DSL for generating custom matchers very simply and cleanly.
|
|
248
|
+
We'll still support the simple_matcher method, so never fear if you're using
|
|
249
|
+
that, but we recommend that you start developing your new matchers with this
|
|
250
|
+
new syntax.
|
|
251
|
+
|
|
252
|
+
Spec::Matchers.create :be_a_multiple_of do |smaller|
|
|
253
|
+
match do |bigger|
|
|
254
|
+
bigger % smaller == 0
|
|
255
|
+
end
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
9.should be_a_multiple_of(3)
|
|
259
|
+
|
|
260
|
+
See <tt>features/matchers/define_matcher.feature</tt> for more examples
|