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,48 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/test_unit_spec_helper'
|
|
2
|
+
|
|
3
|
+
describe "ExampleGroup with test/unit/interop" do
|
|
4
|
+
include TestUnitSpecHelper
|
|
5
|
+
|
|
6
|
+
describe "with passing examples" do
|
|
7
|
+
it "should output 0 failures" do
|
|
8
|
+
output = ruby("#{resources}/spec_that_passes.rb")
|
|
9
|
+
output.should include("1 example, 0 failures")
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
it "should return an exit code of 0" do
|
|
13
|
+
ruby("#{resources}/spec_that_passes.rb")
|
|
14
|
+
$?.should == 0
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
describe "with failing examples" do
|
|
19
|
+
it "should output 1 failure" do
|
|
20
|
+
output = ruby("#{resources}/spec_that_fails.rb")
|
|
21
|
+
output.should include("1 example, 1 failure")
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it "should return an exit code of 256" do
|
|
25
|
+
ruby("#{resources}/spec_that_fails.rb")
|
|
26
|
+
$?.should == 256
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
describe "with example that raises an error" do
|
|
31
|
+
it "should output 1 failure" do
|
|
32
|
+
output = ruby("#{resources}/spec_with_errors.rb")
|
|
33
|
+
output.should include("1 example, 1 failure")
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it "should return an exit code of 256" do
|
|
37
|
+
ruby("#{resources}/spec_with_errors.rb")
|
|
38
|
+
$?.should == 256
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe "options hash" do
|
|
43
|
+
it "should be exposed" do
|
|
44
|
+
output = ruby("#{resources}/spec_with_options_hash.rb")
|
|
45
|
+
output.should include("1 example, 0 failures")
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../spec_helper'
|
|
2
|
+
require File.dirname(__FILE__) + '/../../../../ruby_forker'
|
|
3
|
+
|
|
4
|
+
module TestUnitSpecHelper
|
|
5
|
+
include RubyForker
|
|
6
|
+
|
|
7
|
+
def resources
|
|
8
|
+
File.dirname(__FILE__) + "/resources"
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def run_script(file_name)
|
|
12
|
+
output = ruby(file_name)
|
|
13
|
+
if !$?.success? || output.include?("FAILED") || output.include?("Error")
|
|
14
|
+
raise output
|
|
15
|
+
end
|
|
16
|
+
output
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/test_unit_spec_helper'
|
|
2
|
+
|
|
3
|
+
describe "Test::Unit::TestCase" do
|
|
4
|
+
include TestUnitSpecHelper
|
|
5
|
+
|
|
6
|
+
before(:each) do
|
|
7
|
+
@dir = File.dirname(__FILE__) + "/resources"
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
describe "with passing test case" do
|
|
11
|
+
it "should output 0 failures" do
|
|
12
|
+
output = ruby("#{@dir}/test_case_that_passes.rb")
|
|
13
|
+
output.should include("1 example, 0 failures")
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "should return an exit code of 0" do
|
|
17
|
+
ruby("#{@dir}/test_case_that_passes.rb")
|
|
18
|
+
$?.should == 0
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
describe "with failing test case" do
|
|
23
|
+
it "should output 1 failure" do
|
|
24
|
+
output = ruby("#{@dir}/test_case_that_fails.rb")
|
|
25
|
+
output.should include("1 example, 1 failure")
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it "should return an exit code of 256" do
|
|
29
|
+
ruby("#{@dir}/test_case_that_fails.rb")
|
|
30
|
+
$?.should == 256
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe "with test case that raises an error" do
|
|
35
|
+
it "should output 1 failure" do
|
|
36
|
+
output = ruby("#{@dir}/test_case_with_errors.rb")
|
|
37
|
+
output.should include("1 example, 1 failure")
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
it "should return an exit code of 256" do
|
|
41
|
+
ruby("#{@dir}/test_case_with_errors.rb")
|
|
42
|
+
$?.should == 256
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
describe "not yet implemented examples:" do
|
|
47
|
+
it "this example should be reported as pending (not an error)"
|
|
48
|
+
end
|
|
49
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
|
2
|
+
module Spec
|
|
3
|
+
module Matchers
|
|
4
|
+
describe "be_close" do
|
|
5
|
+
it "should match when value == target" do
|
|
6
|
+
be_close(5.0, 0.5).matches?(5.0).should be_true
|
|
7
|
+
end
|
|
8
|
+
it "should match when value < (target + delta)" do
|
|
9
|
+
be_close(5.0, 0.5).matches?(5.49).should be_true
|
|
10
|
+
end
|
|
11
|
+
it "should match when value > (target - delta)" do
|
|
12
|
+
be_close(5.0, 0.5).matches?(4.51).should be_true
|
|
13
|
+
end
|
|
14
|
+
it "should not match when value == (target - delta)" do
|
|
15
|
+
be_close(5.0, 0.5).matches?(4.5).should be_false
|
|
16
|
+
end
|
|
17
|
+
it "should not match when value < (target - delta)" do
|
|
18
|
+
be_close(5.0, 0.5).matches?(4.49).should be_false
|
|
19
|
+
end
|
|
20
|
+
it "should not match when value == (target + delta)" do
|
|
21
|
+
be_close(5.0, 0.5).matches?(5.5).should be_false
|
|
22
|
+
end
|
|
23
|
+
it "should not match when value > (target + delta)" do
|
|
24
|
+
be_close(5.0, 0.5).matches?(5.51).should be_false
|
|
25
|
+
end
|
|
26
|
+
it "should provide a useful failure message" do
|
|
27
|
+
#given
|
|
28
|
+
matcher = be_close(5.0, 0.5)
|
|
29
|
+
#when
|
|
30
|
+
matcher.matches?(5.51)
|
|
31
|
+
#then
|
|
32
|
+
matcher.failure_message.should == "expected 5.0 +/- (< 0.5), got 5.51"
|
|
33
|
+
end
|
|
34
|
+
it "should describe itself" do
|
|
35
|
+
matcher = be_close(5.0, 0.5)
|
|
36
|
+
matcher.matches?(5.1)
|
|
37
|
+
matcher.description.should == "be close to 5.0 (within +- 0.5)"
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
|
2
|
+
|
|
3
|
+
describe "should be_predicate" do
|
|
4
|
+
it "should pass when actual returns true for :predicate?" do
|
|
5
|
+
actual = stub("actual", :happy? => true)
|
|
6
|
+
actual.should be_happy
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it "should pass when actual returns true for :predicates? (present tense)" do
|
|
10
|
+
actual = stub("actual", :exists? => true, :exist? => true)
|
|
11
|
+
actual.should be_exist
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it "should fail when actual returns false for :predicate?" do
|
|
15
|
+
actual = stub("actual", :happy? => false)
|
|
16
|
+
lambda {
|
|
17
|
+
actual.should be_happy
|
|
18
|
+
}.should fail_with("expected happy? to return true, got false")
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it "should fail when actual does not respond to :predicate?" do
|
|
22
|
+
lambda {
|
|
23
|
+
Object.new.should be_happy
|
|
24
|
+
}.should raise_error(NameError, /happy\?/)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it "should fail on error other than NameError" do
|
|
28
|
+
actual = stub("actual")
|
|
29
|
+
actual.should_receive(:foo?).and_raise("aaaah")
|
|
30
|
+
lambda {
|
|
31
|
+
actual.should be_foo
|
|
32
|
+
}.should raise_error(/aaaah/)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it "should fail on error other than NameError (with the present tense predicate)" do
|
|
36
|
+
actual = Object.new
|
|
37
|
+
actual.should_receive(:foos?).and_raise("aaaah")
|
|
38
|
+
lambda {
|
|
39
|
+
actual.should be_foo
|
|
40
|
+
}.should raise_error(/aaaah/)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
describe "should_not be_predicate" do
|
|
45
|
+
it "should pass when actual returns false for :sym?" do
|
|
46
|
+
actual = stub("actual", :happy? => false)
|
|
47
|
+
actual.should_not be_happy
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
it "should fail when actual returns true for :sym?" do
|
|
51
|
+
actual = stub("actual", :happy? => true)
|
|
52
|
+
lambda {
|
|
53
|
+
actual.should_not be_happy
|
|
54
|
+
}.should fail_with("expected happy? to return false, got true")
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
it "should fail when actual does not respond to :sym?" do
|
|
58
|
+
lambda {
|
|
59
|
+
Object.new.should_not be_happy
|
|
60
|
+
}.should raise_error(NameError)
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
describe "should be_predicate(*args)" do
|
|
65
|
+
it "should pass when actual returns true for :predicate?(*args)" do
|
|
66
|
+
actual = mock("actual")
|
|
67
|
+
actual.should_receive(:older_than?).with(3).and_return(true)
|
|
68
|
+
actual.should be_older_than(3)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
it "should fail when actual returns false for :predicate?(*args)" do
|
|
72
|
+
actual = mock("actual")
|
|
73
|
+
actual.should_receive(:older_than?).with(3).and_return(false)
|
|
74
|
+
lambda {
|
|
75
|
+
actual.should be_older_than(3)
|
|
76
|
+
}.should fail_with("expected older_than?(3) to return true, got false")
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
it "should fail when actual does not respond to :predicate?" do
|
|
80
|
+
lambda {
|
|
81
|
+
Object.new.should be_older_than(3)
|
|
82
|
+
}.should raise_error(NameError)
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
describe "should_not be_predicate(*args)" do
|
|
87
|
+
it "should pass when actual returns false for :predicate?(*args)" do
|
|
88
|
+
actual = mock("actual")
|
|
89
|
+
actual.should_receive(:older_than?).with(3).and_return(false)
|
|
90
|
+
actual.should_not be_older_than(3)
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
it "should fail when actual returns true for :predicate?(*args)" do
|
|
94
|
+
actual = mock("actual")
|
|
95
|
+
actual.should_receive(:older_than?).with(3).and_return(true)
|
|
96
|
+
lambda {
|
|
97
|
+
actual.should_not be_older_than(3)
|
|
98
|
+
}.should fail_with("expected older_than?(3) to return false, got true")
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
it "should fail when actual does not respond to :predicate?" do
|
|
102
|
+
lambda {
|
|
103
|
+
Object.new.should_not be_older_than(3)
|
|
104
|
+
}.should raise_error(NameError)
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
describe "should be_true" do
|
|
109
|
+
it "should pass when actual equal(true)" do
|
|
110
|
+
true.should be_true
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
it "should fail when actual equal(false)" do
|
|
114
|
+
lambda {
|
|
115
|
+
false.should be_true
|
|
116
|
+
}.should fail_with("expected true, got false")
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
describe "should be_false" do
|
|
121
|
+
it "should pass when actual equal(false)" do
|
|
122
|
+
false.should be_false
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
it "should fail when actual equal(true)" do
|
|
126
|
+
lambda {
|
|
127
|
+
true.should be_false
|
|
128
|
+
}.should fail_with("expected false, got true")
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
describe "should be_nil" do
|
|
133
|
+
it "should pass when actual is nil" do
|
|
134
|
+
nil.should be_nil
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
it "should fail when actual is not nil" do
|
|
138
|
+
lambda {
|
|
139
|
+
:not_nil.should be_nil
|
|
140
|
+
}.should fail_with("expected nil? to return true, got false")
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
describe "should_not be_nil" do
|
|
145
|
+
it "should pass when actual is not nil" do
|
|
146
|
+
:not_nil.should_not be_nil
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
it "should fail when actual is nil" do
|
|
150
|
+
lambda {
|
|
151
|
+
nil.should_not be_nil
|
|
152
|
+
}.should fail_with("expected nil? to return false, got true")
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
describe "should be <" do
|
|
157
|
+
it "should pass when < operator returns true" do
|
|
158
|
+
3.should be < 4
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
it "should fail when < operator returns false" do
|
|
162
|
+
lambda { 3.should be < 3 }.should fail_with("expected < 3, got 3")
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
describe "should be <=" do
|
|
167
|
+
it "should pass when <= operator returns true" do
|
|
168
|
+
3.should be <= 4
|
|
169
|
+
4.should be <= 4
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
it "should fail when <= operator returns false" do
|
|
173
|
+
lambda { 3.should be <= 2 }.should fail_with("expected <= 2, got 3")
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
describe "should be >=" do
|
|
178
|
+
it "should pass when >= operator returns true" do
|
|
179
|
+
4.should be >= 4
|
|
180
|
+
5.should be >= 4
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
it "should fail when >= operator returns false" do
|
|
184
|
+
lambda { 3.should be >= 4 }.should fail_with("expected >= 4, got 3")
|
|
185
|
+
end
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
describe "should be >" do
|
|
189
|
+
it "should pass when > operator returns true" do
|
|
190
|
+
5.should be > 4
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
it "should fail when > operator returns false" do
|
|
194
|
+
lambda { 3.should be > 4 }.should fail_with("expected > 4, got 3")
|
|
195
|
+
end
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
describe "should be ==" do
|
|
199
|
+
it "should pass when == operator returns true" do
|
|
200
|
+
5.should be == 5
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
it "should fail when == operator returns false" do
|
|
204
|
+
lambda { 3.should be == 4 }.should fail_with("expected == 4, got 3")
|
|
205
|
+
end
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
describe "should be ===" do
|
|
209
|
+
it "should pass when === operator returns true" do
|
|
210
|
+
Hash.should be === Hash.new
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
it "should fail when === operator returns false" do
|
|
214
|
+
lambda { Hash.should be === "not a hash" }.should fail_with(%[expected === not a hash, got Hash])
|
|
215
|
+
end
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
describe "should_not with operators" do
|
|
219
|
+
it "should coach user to stop using operators with should_not" do
|
|
220
|
+
lambda {
|
|
221
|
+
5.should_not be < 6
|
|
222
|
+
}.should raise_error(/not only FAILED,\nit reads really poorly./m)
|
|
223
|
+
end
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
describe "should be" do
|
|
227
|
+
it "should pass if actual is true or a set value" do
|
|
228
|
+
true.should be
|
|
229
|
+
1.should be
|
|
230
|
+
end
|
|
231
|
+
|
|
232
|
+
it "should fail if actual is false" do
|
|
233
|
+
lambda {false.should be}.should fail_with("expected true, got false")
|
|
234
|
+
end
|
|
235
|
+
|
|
236
|
+
it "should fail if actual is nil" do
|
|
237
|
+
lambda {nil.should be}.should fail_with("expected true, got nil")
|
|
238
|
+
end
|
|
239
|
+
end
|
|
240
|
+
|
|
241
|
+
describe "should be(value)" do
|
|
242
|
+
it "should pass if actual.equal?(value)" do
|
|
243
|
+
5.should be(5)
|
|
244
|
+
end
|
|
245
|
+
it "should fail if !actual.equal?(value)" do
|
|
246
|
+
lambda { 5.should be(6) }.should fail_with("expected 6, got 5")
|
|
247
|
+
end
|
|
248
|
+
end
|
|
249
|
+
|
|
250
|
+
describe "'should be' with operator" do
|
|
251
|
+
it "should include 'be' in the description" do
|
|
252
|
+
(be > 6).description.should =~ /be > 6/
|
|
253
|
+
(be >= 6).description.should =~ /be >= 6/
|
|
254
|
+
(be <= 6).description.should =~ /be <= 6/
|
|
255
|
+
(be < 6).description.should =~ /be < 6/
|
|
256
|
+
end
|
|
257
|
+
end
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
describe "arbitrary predicate with DelegateClass" do
|
|
261
|
+
it "should access methods defined in the delegating class (LH[#48])" do
|
|
262
|
+
pending(%{
|
|
263
|
+
Looks like DelegateClass is delegating #should to the
|
|
264
|
+
delegate. Not sure how to fix this one. Or if we even should."
|
|
265
|
+
})
|
|
266
|
+
require 'delegate'
|
|
267
|
+
class ArrayDelegate < DelegateClass(Array)
|
|
268
|
+
def initialize(array)
|
|
269
|
+
@internal_array = array
|
|
270
|
+
super(@internal_array)
|
|
271
|
+
end
|
|
272
|
+
|
|
273
|
+
def large?
|
|
274
|
+
@internal_array.size >= 5
|
|
275
|
+
end
|
|
276
|
+
end
|
|
277
|
+
|
|
278
|
+
delegate = ArrayDelegate.new([1,2,3,4,5,6])
|
|
279
|
+
delegate.should be_large
|
|
280
|
+
end
|
|
281
|
+
end
|
|
282
|
+
|
|
283
|
+
describe "be_a, be_an" do
|
|
284
|
+
it "should pass when class matches" do
|
|
285
|
+
"foobar".should be_a(String)
|
|
286
|
+
[1,2,3].should be_an(Array)
|
|
287
|
+
end
|
|
288
|
+
|
|
289
|
+
it "should fail when class does not match" do
|
|
290
|
+
"foobar".should_not be_a(Hash)
|
|
291
|
+
[1,2,3].should_not be_an(Integer)
|
|
292
|
+
end
|
|
293
|
+
end
|
|
294
|
+
|
|
295
|
+
describe "be_an_instance_of" do
|
|
296
|
+
it "passes when direct class matches" do
|
|
297
|
+
5.should be_an_instance_of(Fixnum)
|
|
298
|
+
end
|
|
299
|
+
|
|
300
|
+
it "fails when class is higher up hierarchy" do
|
|
301
|
+
5.should_not be_an_instance_of(Numeric)
|
|
302
|
+
end
|
|
303
|
+
end
|