newbamboo-rspec 1.1.12
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 +4 -0
- data/History.txt +1263 -0
- data/License.txt +22 -0
- data/Manifest.txt +327 -0
- data/README.txt +57 -0
- data/Rakefile +104 -0
- data/TODO.txt +18 -0
- data/bin/autospec +4 -0
- data/bin/spec +4 -0
- data/examples/failing/README.txt +7 -0
- data/examples/failing/diffing_spec.rb +36 -0
- data/examples/failing/failing_autogenerated_docstrings_example.rb +19 -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 +40 -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 +20 -0
- data/examples/failing/predicate_example.rb +34 -0
- data/examples/failing/raising_example.rb +47 -0
- data/examples/failing/spec_helper.rb +3 -0
- data/examples/failing/syntax_error_example.rb +7 -0
- data/examples/failing/team_spec.rb +44 -0
- data/examples/failing/timeout_behaviour.rb +7 -0
- data/examples/passing/autogenerated_docstrings_example.rb +25 -0
- data/examples/passing/before_and_after_example.rb +40 -0
- data/examples/passing/behave_as_example.rb +45 -0
- data/examples/passing/custom_expectation_matchers.rb +54 -0
- data/examples/passing/custom_formatter.rb +12 -0
- data/examples/passing/dynamic_spec.rb +9 -0
- data/examples/passing/file_accessor.rb +19 -0
- data/examples/passing/file_accessor_spec.rb +38 -0
- data/examples/passing/greeter_spec.rb +31 -0
- data/examples/passing/helper_method_example.rb +14 -0
- data/examples/passing/io_processor.rb +8 -0
- data/examples/passing/io_processor_spec.rb +21 -0
- data/examples/passing/legacy_spec.rb +11 -0
- data/examples/passing/mocking_example.rb +27 -0
- data/examples/passing/multi_threaded_example_group_runner.rb +26 -0
- data/examples/passing/nested_classes_example.rb +36 -0
- data/examples/passing/partial_mock_example.rb +29 -0
- data/examples/passing/pending_example.rb +20 -0
- data/examples/passing/predicate_example.rb +27 -0
- data/examples/passing/priority.txt +1 -0
- data/examples/passing/shared_example_group_example.rb +81 -0
- data/examples/passing/shared_stack_examples.rb +36 -0
- data/examples/passing/simple_matcher_example.rb +31 -0
- data/examples/passing/spec_helper.rb +3 -0
- data/examples/passing/stack.rb +36 -0
- data/examples/passing/stack_spec.rb +64 -0
- data/examples/passing/stack_spec_with_nested_example_groups.rb +67 -0
- data/examples/passing/stubbing_example.rb +69 -0
- data/examples/passing/yielding_example.rb +33 -0
- data/examples/ruby1.9.compatibility/access_to_constants_spec.rb +86 -0
- data/features/before_and_after_blocks/before_and_after_blocks.feature +168 -0
- data/features/example_groups/autogenerated_docstrings.feature +45 -0
- data/features/example_groups/example_group_with_should_methods.feature +17 -0
- data/features/example_groups/nested_groups.feature +17 -0
- data/features/example_groups/output.feature +20 -0
- data/features/interop/examples_and_tests_together.feature +31 -0
- data/features/interop/test_but_not_test_unit.feature +14 -0
- data/features/interop/test_case_with_should_methods.feature +17 -0
- data/features/mock_framework_integration/use_flexmock.feature +27 -0
- data/features/step_definitions/running_rspec.rb +54 -0
- data/features/support/env.rb +26 -0
- data/features/support/helpers/cmdline.rb +9 -0
- data/features/support/matchers/smart_match.rb +37 -0
- data/init.rb +9 -0
- data/lib/adapters/mock_frameworks/flexmock.rb +24 -0
- data/lib/adapters/mock_frameworks/mocha.rb +20 -0
- data/lib/adapters/mock_frameworks/rr.rb +22 -0
- data/lib/adapters/mock_frameworks/rspec.rb +20 -0
- data/lib/autotest/discover.rb +3 -0
- data/lib/autotest/rspec.rb +47 -0
- data/lib/spec/dsl/main.rb +87 -0
- data/lib/spec/dsl.rb +1 -0
- data/lib/spec/example/before_and_after_hooks.rb +99 -0
- data/lib/spec/example/errors.rb +30 -0
- data/lib/spec/example/example_group.rb +26 -0
- data/lib/spec/example/example_group_factory.rb +98 -0
- data/lib/spec/example/example_group_methods.rb +376 -0
- data/lib/spec/example/example_matcher.rb +44 -0
- data/lib/spec/example/example_methods.rb +137 -0
- data/lib/spec/example/module_reopening_fix.rb +21 -0
- data/lib/spec/example/pending.rb +18 -0
- data/lib/spec/example/shared_example_group.rb +59 -0
- data/lib/spec/example.rb +187 -0
- data/lib/spec/expectations/differs/default.rb +66 -0
- data/lib/spec/expectations/errors.rb +12 -0
- data/lib/spec/expectations/extensions/object.rb +63 -0
- data/lib/spec/expectations/extensions/string_and_symbol.rb +17 -0
- data/lib/spec/expectations/extensions.rb +2 -0
- data/lib/spec/expectations/handler.rb +32 -0
- data/lib/spec/expectations.rb +60 -0
- data/lib/spec/interop/test/unit/autorunner.rb +6 -0
- data/lib/spec/interop/test/unit/testcase.rb +73 -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/interop/test.rb +12 -0
- data/lib/spec/matchers/be.rb +208 -0
- data/lib/spec/matchers/be_close.rb +21 -0
- data/lib/spec/matchers/change.rb +148 -0
- data/lib/spec/matchers/eql.rb +25 -0
- data/lib/spec/matchers/equal.rb +25 -0
- data/lib/spec/matchers/errors.rb +5 -0
- data/lib/spec/matchers/exist.rb +16 -0
- data/lib/spec/matchers/generated_descriptions.rb +48 -0
- data/lib/spec/matchers/has.rb +15 -0
- data/lib/spec/matchers/have.rb +150 -0
- data/lib/spec/matchers/include.rb +80 -0
- data/lib/spec/matchers/match.rb +22 -0
- data/lib/spec/matchers/match_array.rb +79 -0
- data/lib/spec/matchers/method_missing.rb +9 -0
- data/lib/spec/matchers/operator_matcher.rb +70 -0
- data/lib/spec/matchers/raise_error.rb +128 -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 +132 -0
- data/lib/spec/matchers/throw_symbol.rb +106 -0
- data/lib/spec/matchers/wrap_expectation.rb +55 -0
- data/lib/spec/matchers.rb +141 -0
- data/lib/spec/mocks/argument_expectation.rb +49 -0
- data/lib/spec/mocks/argument_matchers.rb +237 -0
- data/lib/spec/mocks/error_generator.rb +82 -0
- data/lib/spec/mocks/errors.rb +10 -0
- data/lib/spec/mocks/extensions/object.rb +3 -0
- data/lib/spec/mocks/extensions.rb +1 -0
- data/lib/spec/mocks/framework.rb +15 -0
- data/lib/spec/mocks/message_expectation.rb +331 -0
- data/lib/spec/mocks/methods.rb +51 -0
- data/lib/spec/mocks/mock.rb +55 -0
- data/lib/spec/mocks/order_group.rb +29 -0
- data/lib/spec/mocks/proxy.rb +230 -0
- data/lib/spec/mocks/space.rb +28 -0
- data/lib/spec/mocks/spec_methods.rb +55 -0
- data/lib/spec/mocks.rb +200 -0
- data/lib/spec/rake/spectask.rb +225 -0
- data/lib/spec/rake/verify_rcov.rb +52 -0
- data/lib/spec/ruby.rb +9 -0
- data/lib/spec/runner/backtrace_tweaker.rb +58 -0
- data/lib/spec/runner/class_and_arguments_parser.rb +14 -0
- data/lib/spec/runner/command_line.rb +35 -0
- data/lib/spec/runner/configuration.rb +166 -0
- data/lib/spec/runner/drb_command_line.rb +20 -0
- data/lib/spec/runner/example_group_runner.rb +70 -0
- data/lib/spec/runner/formatter/base_formatter.rb +79 -0
- data/lib/spec/runner/formatter/base_text_formatter.rb +127 -0
- data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +27 -0
- data/lib/spec/runner/formatter/failing_examples_formatter.rb +20 -0
- data/lib/spec/runner/formatter/html_formatter.rb +340 -0
- data/lib/spec/runner/formatter/nested_text_formatter.rb +65 -0
- data/lib/spec/runner/formatter/profile_formatter.rb +51 -0
- data/lib/spec/runner/formatter/progress_bar_formatter.rb +34 -0
- data/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
- data/lib/spec/runner/formatter/specdoc_formatter.rb +39 -0
- data/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
- data/lib/spec/runner/heckle_runner.rb +74 -0
- data/lib/spec/runner/heckle_runner_unsupported.rb +10 -0
- data/lib/spec/runner/option_parser.rb +204 -0
- data/lib/spec/runner/options.rb +320 -0
- data/lib/spec/runner/reporter.rb +167 -0
- data/lib/spec/runner/spec_parser.rb +73 -0
- data/lib/spec/runner.rb +88 -0
- data/lib/spec/version.rb +15 -0
- data/lib/spec.rb +7 -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/resources/spec/example_group_with_should_methods.rb +12 -0
- data/resources/spec/simple_spec.rb +8 -0
- data/resources/test/spec_and_test_together.rb +57 -0
- data/resources/test/spec_including_test_but_not_unit.rb +11 -0
- data/resources/test/test_case_with_should_methods.rb +30 -0
- data/rspec.gemspec +32 -0
- data/spec/README.jruby +15 -0
- data/spec/autotest/autotest_helper.rb +6 -0
- data/spec/autotest/autotest_matchers.rb +47 -0
- data/spec/autotest/discover_spec.rb +8 -0
- data/spec/autotest/failed_results_re_spec.rb +24 -0
- data/spec/autotest/rspec_spec.rb +114 -0
- data/spec/rspec_suite.rb +6 -0
- data/spec/ruby_forker.rb +13 -0
- data/spec/spec/dsl/main_spec.rb +88 -0
- data/spec/spec/example/example_group_class_definition_spec.rb +49 -0
- data/spec/spec/example/example_group_factory_spec.rb +224 -0
- data/spec/spec/example/example_group_methods_spec.rb +653 -0
- data/spec/spec/example/example_group_spec.rb +661 -0
- data/spec/spec/example/example_matcher_spec.rb +79 -0
- data/spec/spec/example/example_methods_spec.rb +204 -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 +139 -0
- data/spec/spec/example/predicate_matcher_spec.rb +21 -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/expectations/differs/default_spec.rb +127 -0
- data/spec/spec/expectations/extensions/object_spec.rb +45 -0
- data/spec/spec/expectations/fail_with_spec.rb +71 -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/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 +49 -0
- data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
- data/spec/spec/matchers/be_close_spec.rb +41 -0
- data/spec/spec/matchers/be_spec.rb +303 -0
- data/spec/spec/matchers/change_spec.rb +329 -0
- data/spec/spec/matchers/description_generation_spec.rb +172 -0
- data/spec/spec/matchers/eql_spec.rb +29 -0
- data/spec/spec/matchers/equal_spec.rb +29 -0
- data/spec/spec/matchers/exist_spec.rb +57 -0
- data/spec/spec/matchers/handler_spec.rb +111 -0
- data/spec/spec/matchers/has_spec.rb +63 -0
- data/spec/spec/matchers/have_spec.rb +399 -0
- data/spec/spec/matchers/include_spec.rb +88 -0
- data/spec/spec/matchers/match_array_spec.rb +83 -0
- data/spec/spec/matchers/match_spec.rb +37 -0
- data/spec/spec/matchers/matcher_methods_spec.rb +66 -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/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 +24 -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.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/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 +84 -0
- data/spec/spec/mocks/mock_space_spec.rb +54 -0
- data/spec/spec/mocks/mock_spec.rb +579 -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 +149 -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_spec.rb +194 -0
- data/spec/spec/mocks/stubbed_message_expectations_spec.rb +14 -0
- data/spec/spec/mocks/twice_counts_spec.rb +67 -0
- data/spec/spec/package/bin_spec_spec.rb +22 -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 +301 -0
- data/spec/spec/runner/drb_command_line_spec.rb +97 -0
- data/spec/spec/runner/empty_file.txt +0 -0
- data/spec/spec/runner/example_group_runner_spec.rb +33 -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 +23 -0
- data/spec/spec/runner/formatter/base_text_formatter_spec.rb +23 -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.4.html +365 -0
- data/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +387 -0
- data/spec/spec/runner/formatter/html_formatted-1.8.5.html +371 -0
- data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +381 -0
- data/spec/spec/runner/formatter/html_formatted-1.8.6.html +379 -0
- data/spec/spec/runner/formatter/html_formatted-1.8.7.html +379 -0
- data/spec/spec/runner/formatter/html_formatted-1.9.1.html +379 -0
- data/spec/spec/runner/formatter/html_formatter_spec.rb +62 -0
- data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +318 -0
- data/spec/spec/runner/formatter/profile_formatter_spec.rb +65 -0
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +145 -0
- data/spec/spec/runner/formatter/snippet_extractor_spec.rb +18 -0
- data/spec/spec/runner/formatter/spec_mate_formatter_spec.rb +104 -0
- data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +159 -0
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.4.html +365 -0
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +373 -0
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +373 -0
- data/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +373 -0
- data/spec/spec/runner/heckle_runner_spec.rb +78 -0
- data/spec/spec/runner/heckler_spec.rb +20 -0
- data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +45 -0
- data/spec/spec/runner/option_parser_spec.rb +396 -0
- data/spec/spec/runner/options_spec.rb +469 -0
- data/spec/spec/runner/output_one_time_fixture.rb +7 -0
- data/spec/spec/runner/output_one_time_fixture_runner.rb +8 -0
- data/spec/spec/runner/output_one_time_spec.rb +16 -0
- data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +62 -0
- data/spec/spec/runner/reporter_spec.rb +238 -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 +7 -0
- data/spec/spec/runner/spec.opts +2 -0
- data/spec/spec/runner/spec_drb.opts +1 -0
- data/spec/spec/runner/spec_parser/spec_parser_fixture.rb +70 -0
- data/spec/spec/runner/spec_parser_spec.rb +91 -0
- data/spec/spec/runner/spec_spaced.opts +2 -0
- data/spec/spec/runner_spec.rb +11 -0
- data/spec/spec/spec_classes.rb +133 -0
- data/spec/spec/spec_spec.rb +21 -0
- data/spec/spec.opts +6 -0
- data/spec/spec_helper.rb +107 -0
- metadata +388 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
|
2
|
+
|
|
3
|
+
describe "array.should =~ other_array" do
|
|
4
|
+
it "should pass if target contains all items" do
|
|
5
|
+
[1,2,3].should =~ [1,2,3]
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it "should pass if target contains all items out of order" do
|
|
9
|
+
[1,3,2].should =~ [1,2,3]
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
it "should fail if target includes extra items" do
|
|
13
|
+
lambda {
|
|
14
|
+
[1,2,3,4].should =~ [1,2,3]
|
|
15
|
+
}.should fail_with(<<-MESSAGE)
|
|
16
|
+
expected collection contained: [1, 2, 3]
|
|
17
|
+
actual collection contained: [1, 2, 3, 4]
|
|
18
|
+
the extra elements were: [4]
|
|
19
|
+
MESSAGE
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it "should fail if target is missing items" do
|
|
23
|
+
lambda {
|
|
24
|
+
[1,2].should =~ [1,2,3]
|
|
25
|
+
}.should fail_with(<<-MESSAGE)
|
|
26
|
+
expected collection contained: [1, 2, 3]
|
|
27
|
+
actual collection contained: [1, 2]
|
|
28
|
+
the missing elements were: [3]
|
|
29
|
+
MESSAGE
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it "should fail if target is missing items and has extra items" do
|
|
33
|
+
|
|
34
|
+
lambda {
|
|
35
|
+
[1,2,4].should =~ [1,2,3]
|
|
36
|
+
}.should fail_with(<<-MESSAGE)
|
|
37
|
+
expected collection contained: [1, 2, 3]
|
|
38
|
+
actual collection contained: [1, 2, 4]
|
|
39
|
+
the missing elements were: [3]
|
|
40
|
+
the extra elements were: [4]
|
|
41
|
+
MESSAGE
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
it "should sort items in the error message" do
|
|
45
|
+
lambda {
|
|
46
|
+
[6,2,1,5].should =~ [4,1,2,3]
|
|
47
|
+
}.should fail_with(<<-MESSAGE)
|
|
48
|
+
expected collection contained: [1, 2, 3, 4]
|
|
49
|
+
actual collection contained: [1, 2, 5, 6]
|
|
50
|
+
the missing elements were: [3, 4]
|
|
51
|
+
the extra elements were: [5, 6]
|
|
52
|
+
MESSAGE
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
it "should accurately report extra elements when there are duplicates" do
|
|
56
|
+
lambda {
|
|
57
|
+
[1,1,1,5].should =~ [1,5]
|
|
58
|
+
}.should fail_with(<<-MESSAGE)
|
|
59
|
+
expected collection contained: [1, 5]
|
|
60
|
+
actual collection contained: [1, 1, 1, 5]
|
|
61
|
+
the extra elements were: [1, 1]
|
|
62
|
+
MESSAGE
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
it "should accurately report missing elements when there are duplicates" do
|
|
66
|
+
lambda {
|
|
67
|
+
[1,5].should =~ [1,1,5]
|
|
68
|
+
}.should fail_with(<<-MESSAGE)
|
|
69
|
+
expected collection contained: [1, 1, 5]
|
|
70
|
+
actual collection contained: [1, 5]
|
|
71
|
+
the missing elements were: [1]
|
|
72
|
+
MESSAGE
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
describe "should_not =~ [:with, :multiple, :args]" do
|
|
78
|
+
it "should not be supported" do
|
|
79
|
+
lambda {
|
|
80
|
+
[1,2,3].should_not =~ [1,2,3]
|
|
81
|
+
}.should fail_with(/Matcher does not support should_not/)
|
|
82
|
+
end
|
|
83
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
|
2
|
+
|
|
3
|
+
describe "should match(expected)" do
|
|
4
|
+
it "should pass when target (String) matches expected (Regexp)" do
|
|
5
|
+
"string".should match(/tri/)
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it "should fail when target (String) does not match expected (Regexp)" do
|
|
9
|
+
lambda {
|
|
10
|
+
"string".should match(/rings/)
|
|
11
|
+
}.should fail
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it "should provide message, expected and actual on failure" do
|
|
15
|
+
matcher = match(/rings/)
|
|
16
|
+
matcher.matches?("string")
|
|
17
|
+
matcher.failure_message.should == ["expected \"string\" to match /rings/", /rings/, "string"]
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe "should_not match(expected)" do
|
|
22
|
+
it "should pass when target (String) matches does not match (Regexp)" do
|
|
23
|
+
"string".should_not match(/rings/)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it "should fail when target (String) matches expected (Regexp)" do
|
|
27
|
+
lambda {
|
|
28
|
+
"string".should_not match(/tri/)
|
|
29
|
+
}.should fail
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it "should provide message, expected and actual on failure" do
|
|
33
|
+
matcher = match(/tri/)
|
|
34
|
+
matcher.matches?("string")
|
|
35
|
+
matcher.negative_failure_message.should == ["expected \"string\" not to match /tri/", /tri/, "string"]
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
|
2
|
+
|
|
3
|
+
module Spec
|
|
4
|
+
module Matchers
|
|
5
|
+
context %Q{The Spec::Matchers module gets included in the execution context of every spec.
|
|
6
|
+
This module should provide the following methods, each of which returns a Matcher object.} do
|
|
7
|
+
it "be_true" do
|
|
8
|
+
be_true.should be_an_instance_of(Be)
|
|
9
|
+
end
|
|
10
|
+
it "be_false" do
|
|
11
|
+
be_false.should be_an_instance_of(Be)
|
|
12
|
+
end
|
|
13
|
+
it "be_nil" do
|
|
14
|
+
be_nil.should be_an_instance_of(Be)
|
|
15
|
+
end
|
|
16
|
+
it "be_arbitrary_predicate" do
|
|
17
|
+
be_arbitrary_predicate.should be_an_instance_of(Be)
|
|
18
|
+
end
|
|
19
|
+
it "change" do
|
|
20
|
+
change("target", :message).should be_an_instance_of(Change)
|
|
21
|
+
end
|
|
22
|
+
it "have" do
|
|
23
|
+
have(0).should be_an_instance_of(Have)
|
|
24
|
+
end
|
|
25
|
+
it "have_exactly" do
|
|
26
|
+
have_exactly(0).should be_an_instance_of(Have)
|
|
27
|
+
end
|
|
28
|
+
it "have_at_least" do
|
|
29
|
+
have_at_least(0).should be_an_instance_of(Have)
|
|
30
|
+
end
|
|
31
|
+
it "have_at_most" do
|
|
32
|
+
have_at_most(0).should be_an_instance_of(Have)
|
|
33
|
+
end
|
|
34
|
+
it "include" do
|
|
35
|
+
include(:value).should be_an_instance_of(Include)
|
|
36
|
+
end
|
|
37
|
+
it "raise_error" do
|
|
38
|
+
raise_error.should be_an_instance_of(RaiseError)
|
|
39
|
+
raise_error(NoMethodError).should be_an_instance_of(RaiseError)
|
|
40
|
+
raise_error(NoMethodError, "message").should be_an_instance_of(RaiseError)
|
|
41
|
+
end
|
|
42
|
+
it "satisfy" do
|
|
43
|
+
satisfy{}.should be_an_instance_of(Satisfy)
|
|
44
|
+
end
|
|
45
|
+
it "throw_symbol" do
|
|
46
|
+
throw_symbol.should be_an_instance_of(ThrowSymbol)
|
|
47
|
+
throw_symbol(:sym).should be_an_instance_of(ThrowSymbol)
|
|
48
|
+
end
|
|
49
|
+
it "respond_to" do
|
|
50
|
+
respond_to(:sym).should be_an_instance_of(RespondTo)
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
describe "Spec::Matchers#method_missing" do
|
|
55
|
+
it "should convert be_xyz to Be(:be_xyz)" do
|
|
56
|
+
Be.should_receive(:new).with(:be_whatever)
|
|
57
|
+
be_whatever
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
it "should convert have_xyz to Has(:have_xyz)" do
|
|
61
|
+
self.should_receive(:has).with(:have_whatever)
|
|
62
|
+
have_whatever
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
|
2
|
+
|
|
3
|
+
require 'spec/expectations/differs/default'
|
|
4
|
+
|
|
5
|
+
describe "should ==" do
|
|
6
|
+
|
|
7
|
+
it "should delegate message to target" do
|
|
8
|
+
subject = "apple"
|
|
9
|
+
subject.should_receive(:==).with("apple").and_return(true)
|
|
10
|
+
subject.should == "apple"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it "should return true on success" do
|
|
14
|
+
subject = "apple"
|
|
15
|
+
(subject.should == "apple").should be_true
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it "should fail when target.==(actual) returns false" do
|
|
19
|
+
subject = "apple"
|
|
20
|
+
Spec::Expectations.should_receive(:fail_with).with(%[expected: "orange",\n got: "apple" (using ==)], "orange", "apple")
|
|
21
|
+
subject.should == "orange"
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
describe "should_not ==" do
|
|
27
|
+
|
|
28
|
+
it "should delegate message to target" do
|
|
29
|
+
subject = "orange"
|
|
30
|
+
subject.should_receive(:==).with("apple").and_return(false)
|
|
31
|
+
subject.should_not == "apple"
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it "should return true on success" do
|
|
35
|
+
subject = "apple"
|
|
36
|
+
(subject.should_not == "orange").should be_true
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
it "should fail when target.==(actual) returns false" do
|
|
40
|
+
subject = "apple"
|
|
41
|
+
Spec::Expectations.should_receive(:fail_with).with(%[expected not: == "apple",\n got: "apple"], "apple", "apple")
|
|
42
|
+
subject.should_not == "apple"
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
describe "should ===" do
|
|
48
|
+
|
|
49
|
+
it "should delegate message to target" do
|
|
50
|
+
subject = "apple"
|
|
51
|
+
subject.should_receive(:===).with("apple").and_return(true)
|
|
52
|
+
subject.should === "apple"
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
it "should fail when target.===(actual) returns false" do
|
|
56
|
+
subject = "apple"
|
|
57
|
+
subject.should_receive(:===).with("orange").and_return(false)
|
|
58
|
+
Spec::Expectations.should_receive(:fail_with).with(%[expected: "orange",\n got: "apple" (using ===)], "orange", "apple")
|
|
59
|
+
subject.should === "orange"
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
describe "should_not ===" do
|
|
65
|
+
|
|
66
|
+
it "should delegate message to target" do
|
|
67
|
+
subject = "orange"
|
|
68
|
+
subject.should_receive(:===).with("apple").and_return(false)
|
|
69
|
+
subject.should_not === "apple"
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
it "should fail when target.===(actual) returns false" do
|
|
73
|
+
subject = "apple"
|
|
74
|
+
subject.should_receive(:===).with("apple").and_return(true)
|
|
75
|
+
Spec::Expectations.should_receive(:fail_with).with(%[expected not: === "apple",\n got: "apple"], "apple", "apple")
|
|
76
|
+
subject.should_not === "apple"
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
describe "should =~" do
|
|
82
|
+
|
|
83
|
+
it "should delegate message to target" do
|
|
84
|
+
subject = "foo"
|
|
85
|
+
subject.should_receive(:=~).with(/oo/).and_return(true)
|
|
86
|
+
subject.should =~ /oo/
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
it "should fail when target.=~(actual) returns false" do
|
|
90
|
+
subject = "fu"
|
|
91
|
+
subject.should_receive(:=~).with(/oo/).and_return(false)
|
|
92
|
+
Spec::Expectations.should_receive(:fail_with).with(%[expected: /oo/,\n got: "fu" (using =~)], /oo/, "fu")
|
|
93
|
+
subject.should =~ /oo/
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
describe "should_not =~" do
|
|
99
|
+
|
|
100
|
+
it "should delegate message to target" do
|
|
101
|
+
subject = "fu"
|
|
102
|
+
subject.should_receive(:=~).with(/oo/).and_return(false)
|
|
103
|
+
subject.should_not =~ /oo/
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
it "should fail when target.=~(actual) returns false" do
|
|
107
|
+
subject = "foo"
|
|
108
|
+
subject.should_receive(:=~).with(/oo/).and_return(true)
|
|
109
|
+
Spec::Expectations.should_receive(:fail_with).with(%[expected not: =~ /oo/,\n got: "foo"], /oo/, "foo")
|
|
110
|
+
subject.should_not =~ /oo/
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
describe "should >" do
|
|
116
|
+
|
|
117
|
+
it "should pass if > passes" do
|
|
118
|
+
4.should > 3
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
it "should fail if > fails" do
|
|
122
|
+
Spec::Expectations.should_receive(:fail_with).with(%[expected: > 5,\n got: 4], 5, 4)
|
|
123
|
+
4.should > 5
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
describe "should >=" do
|
|
129
|
+
|
|
130
|
+
it "should pass if >= passes" do
|
|
131
|
+
4.should > 3
|
|
132
|
+
4.should >= 4
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
it "should fail if > fails" do
|
|
136
|
+
Spec::Expectations.should_receive(:fail_with).with(%[expected: >= 5,\n got: 4], 5, 4)
|
|
137
|
+
4.should >= 5
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
describe "should <" do
|
|
143
|
+
|
|
144
|
+
it "should pass if < passes" do
|
|
145
|
+
4.should < 5
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
it "should fail if > fails" do
|
|
149
|
+
Spec::Expectations.should_receive(:fail_with).with(%[expected: < 3,\n got: 4], 3, 4)
|
|
150
|
+
4.should < 3
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
describe "should <=" do
|
|
156
|
+
|
|
157
|
+
it "should pass if <= passes" do
|
|
158
|
+
4.should <= 5
|
|
159
|
+
4.should <= 4
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
it "should fail if > fails" do
|
|
163
|
+
Spec::Expectations.should_receive(:fail_with).with(%[expected: <= 3,\n got: 4], 3, 4)
|
|
164
|
+
4.should <= 3
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
describe Spec::Matchers::PositiveOperatorMatcher do
|
|
170
|
+
|
|
171
|
+
it "should work when the target has implemented #send" do
|
|
172
|
+
o = Object.new
|
|
173
|
+
def o.send(*args); raise "DOH! Library developers shouldn't use #send!" end
|
|
174
|
+
lambda {
|
|
175
|
+
o.should == o
|
|
176
|
+
}.should_not raise_error
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
describe Spec::Matchers::NegativeOperatorMatcher do
|
|
182
|
+
|
|
183
|
+
it "should work when the target has implemented #send" do
|
|
184
|
+
o = Object.new
|
|
185
|
+
def o.send(*args); raise "DOH! Library developers shouldn't use #send!" end
|
|
186
|
+
lambda {
|
|
187
|
+
o.should_not == :foo
|
|
188
|
+
}.should_not raise_error
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
end
|