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,257 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
|
2
|
+
|
|
3
|
+
module Spec
|
|
4
|
+
module Example
|
|
5
|
+
describe ExampleGroup, "with :shared => true" do
|
|
6
|
+
with_sandboxed_options do
|
|
7
|
+
attr_reader :formatter, :example_group
|
|
8
|
+
before(:each) do
|
|
9
|
+
@formatter = Spec::Mocks::Mock.new("formatter", :null_object => true)
|
|
10
|
+
options.formatters << formatter
|
|
11
|
+
@example_group = Class.new(ExampleGroupDouble).describe("example_group")
|
|
12
|
+
class << example_group
|
|
13
|
+
public :include
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
after(:each) do
|
|
18
|
+
@formatter.rspec_verify
|
|
19
|
+
@example_group = nil
|
|
20
|
+
Spec::Example::SharedExampleGroup.clear
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
describe "#register" do
|
|
24
|
+
it "creates a new shared example group with the submitted args" do
|
|
25
|
+
block = lambda {}
|
|
26
|
+
group = SharedExampleGroup.new("shared group") do end
|
|
27
|
+
Spec::Example::SharedExampleGroup.should_receive(:new).with("share me", &block).and_return(group)
|
|
28
|
+
Spec::Example::SharedExampleGroup.register("share me", &block)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "registers the shared example group" do
|
|
32
|
+
lambda do
|
|
33
|
+
Spec::Example::SharedExampleGroup.register "share me" do end
|
|
34
|
+
end.should change {Spec::Example::SharedExampleGroup.count}.by(1)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it "complains when adding a second shared example_group with the same description" do
|
|
39
|
+
describe "shared example_group", :shared => true do
|
|
40
|
+
end
|
|
41
|
+
lambda do
|
|
42
|
+
describe "shared example_group", :shared => true do
|
|
43
|
+
end
|
|
44
|
+
end.should raise_error(ArgumentError)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
it "does NOT add the same group twice" do
|
|
48
|
+
lambda do
|
|
49
|
+
2.times do
|
|
50
|
+
describe "shared example_group which gets loaded twice", :shared => true do
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end.should change {Spec::Example::SharedExampleGroup.count}.by(1)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
it "does NOT complain when adding the same shared example_group again (i.e. file gets reloaded)" do
|
|
57
|
+
lambda do
|
|
58
|
+
2.times do
|
|
59
|
+
describe "shared example_group which gets loaded twice", :shared => true do
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end.should_not raise_error(ArgumentError)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
it "does NOT complain when adding the same shared example_group in same file with different absolute path" do
|
|
66
|
+
SharedExampleGroup.register(
|
|
67
|
+
"shared example_group",
|
|
68
|
+
:shared => true,
|
|
69
|
+
:spec_path => "/my/spec/a/../shared.rb"
|
|
70
|
+
)
|
|
71
|
+
SharedExampleGroup.register(
|
|
72
|
+
"shared example_group",
|
|
73
|
+
:shared => true,
|
|
74
|
+
:spec_path => "/my/spec/b/../shared.rb"
|
|
75
|
+
)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
it "complains when adding a different shared example_group with the same name in a different file with the same basename" do
|
|
79
|
+
SharedExampleGroup.register(
|
|
80
|
+
"shared example_group",
|
|
81
|
+
:shared => true,
|
|
82
|
+
:spec_path => "/my/spec/a/shared.rb"
|
|
83
|
+
)
|
|
84
|
+
lambda do
|
|
85
|
+
SharedExampleGroup.register(
|
|
86
|
+
"shared example_group",
|
|
87
|
+
:shared => true,
|
|
88
|
+
:spec_path => "/my/spec/b/shared.rb"
|
|
89
|
+
)
|
|
90
|
+
end.should raise_error(ArgumentError, /already exists/)
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
it "adds examples to current example_group using it_should_behave_like" do
|
|
94
|
+
shared_example_group = SharedExampleGroup.register("shared example_group") do
|
|
95
|
+
it("shared example") {}
|
|
96
|
+
it("shared example 2") {}
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
example_group.it("example") {}
|
|
100
|
+
example_group.number_of_examples.should == 1
|
|
101
|
+
example_group.it_should_behave_like("shared example_group")
|
|
102
|
+
example_group.number_of_examples.should == 3
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
it "adds examples to from two shared groups" do
|
|
106
|
+
shared_example_group_1 = SharedExampleGroup.register("shared example_group 1") do
|
|
107
|
+
it("shared example 1") {}
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
shared_example_group_1 = SharedExampleGroup.register("shared example_group 2") do
|
|
111
|
+
it("shared example 2") {}
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
example_group.it("example") {}
|
|
115
|
+
example_group.number_of_examples.should == 1
|
|
116
|
+
example_group.it_should_behave_like("shared example_group 1", "shared example_group 2")
|
|
117
|
+
example_group.number_of_examples.should == 3
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
it "adds examples to current example_group using include" do
|
|
121
|
+
shared_example_group = describe "all things", :shared => true do
|
|
122
|
+
it "should do stuff" do end
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
example_group = describe "one thing" do
|
|
126
|
+
include shared_example_group
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
example_group.number_of_examples.should == 1
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
it "adds examples to current example_group using it_should_behave_like with a module" do
|
|
133
|
+
AllThings = describe "all things", :shared => true do
|
|
134
|
+
it "should do stuff" do end
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
example_group = describe "one thing" do
|
|
138
|
+
it_should_behave_like AllThings
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
example_group.number_of_examples.should == 1
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
it "runs shared examples" do
|
|
145
|
+
shared_example_ran = false
|
|
146
|
+
shared_example_group = SharedExampleGroup.register("shared example_group") do
|
|
147
|
+
it("shared example") { shared_example_ran = true }
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
example_ran = false
|
|
151
|
+
|
|
152
|
+
example_group.it_should_behave_like("shared example_group")
|
|
153
|
+
example_group.it("example") {example_ran = true}
|
|
154
|
+
example_group.run(options)
|
|
155
|
+
example_ran.should be_true
|
|
156
|
+
shared_example_ran.should be_true
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
it "runs before(:each) and after(:each) from shared example_group" do
|
|
160
|
+
shared_setup_ran = false
|
|
161
|
+
shared_teardown_ran = false
|
|
162
|
+
shared_example_group = SharedExampleGroup.register("shared example_group") do
|
|
163
|
+
before(:each) { shared_setup_ran = true }
|
|
164
|
+
after(:each) { shared_teardown_ran = true }
|
|
165
|
+
it("shared example") { shared_example_ran = true }
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
example_ran = false
|
|
169
|
+
|
|
170
|
+
example_group.it_should_behave_like("shared example_group")
|
|
171
|
+
example_group.it("example") {example_ran = true}
|
|
172
|
+
example_group.run(options)
|
|
173
|
+
example_ran.should be_true
|
|
174
|
+
shared_setup_ran.should be_true
|
|
175
|
+
shared_teardown_ran.should be_true
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
it "should run before(:all) and after(:all) only once from shared example_group" do
|
|
179
|
+
shared_before_all_run_count = 0
|
|
180
|
+
shared_after_all_run_count = 0
|
|
181
|
+
shared_example_group = SharedExampleGroup.register("shared example_group") do
|
|
182
|
+
before(:all) { shared_before_all_run_count += 1}
|
|
183
|
+
after(:all) { shared_after_all_run_count += 1}
|
|
184
|
+
it("shared example") { shared_example_ran = true }
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
example_ran = false
|
|
188
|
+
|
|
189
|
+
example_group.it_should_behave_like("shared example_group")
|
|
190
|
+
example_group.it("example") {example_ran = true}
|
|
191
|
+
example_group.run(options)
|
|
192
|
+
example_ran.should be_true
|
|
193
|
+
shared_before_all_run_count.should == 1
|
|
194
|
+
shared_after_all_run_count.should == 1
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
it "should include modules, included into shared example_group, into current example_group" do
|
|
198
|
+
@formatter.should_receive(:add_example_group).with(any_args)
|
|
199
|
+
|
|
200
|
+
shared_example_group = SharedExampleGroup.register("shared example_group") do
|
|
201
|
+
it("shared example") { shared_example_ran = true }
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
mod1_method_called = false
|
|
205
|
+
mod1 = Module.new do
|
|
206
|
+
define_method :mod1_method do
|
|
207
|
+
mod1_method_called = true
|
|
208
|
+
end
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
mod2_method_called = false
|
|
212
|
+
mod2 = Module.new do
|
|
213
|
+
define_method :mod2_method do
|
|
214
|
+
mod2_method_called = true
|
|
215
|
+
end
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
shared_example_group.__send__ :include, mod2
|
|
219
|
+
|
|
220
|
+
example_group.it_should_behave_like("shared example_group")
|
|
221
|
+
example_group.include mod1
|
|
222
|
+
|
|
223
|
+
example_group.it("test") do
|
|
224
|
+
mod1_method
|
|
225
|
+
mod2_method
|
|
226
|
+
end
|
|
227
|
+
example_group.run(options)
|
|
228
|
+
mod1_method_called.should be_true
|
|
229
|
+
mod2_method_called.should be_true
|
|
230
|
+
end
|
|
231
|
+
|
|
232
|
+
it "should make methods defined in the shared example_group available in consuming example_group" do
|
|
233
|
+
shared_example_group = SharedExampleGroup.register("shared example_group xyz") do
|
|
234
|
+
def a_shared_helper_method
|
|
235
|
+
"this got defined in a shared example_group"
|
|
236
|
+
end
|
|
237
|
+
end
|
|
238
|
+
example_group.it_should_behave_like("shared example_group xyz")
|
|
239
|
+
success = false
|
|
240
|
+
example_group.it("should access a_shared_helper_method") do
|
|
241
|
+
a_shared_helper_method
|
|
242
|
+
success = true
|
|
243
|
+
end
|
|
244
|
+
example_group.run(options)
|
|
245
|
+
success.should be_true
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
it "should raise when named shared example_group can not be found" do
|
|
249
|
+
lambda {
|
|
250
|
+
example_group.it_should_behave_like("non-existent shared example group")
|
|
251
|
+
violated
|
|
252
|
+
}.should raise_error("Shared Example Group 'non-existent shared example group' can not be found")
|
|
253
|
+
end
|
|
254
|
+
end
|
|
255
|
+
end
|
|
256
|
+
end
|
|
257
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
|
2
|
+
|
|
3
|
+
module Spec
|
|
4
|
+
module Example
|
|
5
|
+
class GrandParentExampleGroup < Spec::Example::ExampleGroup
|
|
6
|
+
describe "Grandparent ExampleGroup"
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
class ParentExampleGroup < GrandParentExampleGroup
|
|
10
|
+
describe "Parent ExampleGroup"
|
|
11
|
+
it "should bar" do
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
class ChildExampleGroup < ParentExampleGroup
|
|
16
|
+
describe "Child ExampleGroup"
|
|
17
|
+
it "should bam" do
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe ChildExampleGroup do
|
|
22
|
+
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
|
|
2
|
+
|
|
3
|
+
module Spec
|
|
4
|
+
module Fixtures
|
|
5
|
+
class Animal
|
|
6
|
+
def initialize(name,species)
|
|
7
|
+
@name,@species = name,species
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def inspect
|
|
11
|
+
<<-EOA
|
|
12
|
+
<Animal
|
|
13
|
+
name=#{@name},
|
|
14
|
+
species=#{@species}
|
|
15
|
+
>
|
|
16
|
+
EOA
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
describe "Diff" do
|
|
23
|
+
before(:each) do
|
|
24
|
+
@options = ::Spec::Runner::Options.new(StringIO.new, StringIO.new)
|
|
25
|
+
@differ = Spec::Expectations::Differs::Default.new(@options)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it "should output unified diff of two strings" do
|
|
29
|
+
expected="foo\nbar\nzap\nthis\nis\nsoo\nvery\nvery\nequal\ninsert\na\nline\n"
|
|
30
|
+
actual="foo\nzap\nbar\nthis\nis\nsoo\nvery\nvery\nequal\ninsert\na\nanother\nline\n"
|
|
31
|
+
expected_diff= <<'EOD'
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
@@ -1,6 +1,6 @@
|
|
35
|
+
foo
|
|
36
|
+
-zap
|
|
37
|
+
bar
|
|
38
|
+
+zap
|
|
39
|
+
this
|
|
40
|
+
is
|
|
41
|
+
soo
|
|
42
|
+
@@ -9,6 +9,5 @@
|
|
43
|
+
equal
|
|
44
|
+
insert
|
|
45
|
+
a
|
|
46
|
+
-another
|
|
47
|
+
line
|
|
48
|
+
EOD
|
|
49
|
+
|
|
50
|
+
diff = @differ.diff_as_string(expected, actual)
|
|
51
|
+
diff.should eql(expected_diff)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
it "should output unified diff message of two arrays" do
|
|
55
|
+
expected = [ :foo, 'bar', :baz, 'quux', :metasyntactic, 'variable', :delta, 'charlie', :width, 'quite wide' ]
|
|
56
|
+
actual = [ :foo, 'bar', :baz, 'quux', :metasyntactic, 'variable', :delta, 'tango' , :width, 'very wide' ]
|
|
57
|
+
|
|
58
|
+
expected_diff = <<'EOD'
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
@@ -5,7 +5,7 @@
|
|
62
|
+
:metasyntactic,
|
|
63
|
+
"variable",
|
|
64
|
+
:delta,
|
|
65
|
+
- "tango",
|
|
66
|
+
+ "charlie",
|
|
67
|
+
:width,
|
|
68
|
+
- "very wide"]
|
|
69
|
+
+ "quite wide"]
|
|
70
|
+
EOD
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
diff = @differ.diff_as_object(expected,actual)
|
|
74
|
+
diff.should == expected_diff
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
it "should output unified diff message of two objects" do
|
|
78
|
+
expected = Spec::Fixtures::Animal.new "bob", "giraffe"
|
|
79
|
+
actual = Spec::Fixtures::Animal.new "bob", "tortoise"
|
|
80
|
+
|
|
81
|
+
expected_diff = <<'EOD'
|
|
82
|
+
|
|
83
|
+
@@ -1,5 +1,5 @@
|
|
84
|
+
<Animal
|
|
85
|
+
name=bob,
|
|
86
|
+
- species=tortoise
|
|
87
|
+
+ species=giraffe
|
|
88
|
+
>
|
|
89
|
+
EOD
|
|
90
|
+
|
|
91
|
+
diff = @differ.diff_as_object(expected,actual)
|
|
92
|
+
diff.should == expected_diff
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
describe "Diff in context format" do
|
|
99
|
+
before(:each) do
|
|
100
|
+
@options = Spec::Runner::Options.new(StringIO.new, StringIO.new)
|
|
101
|
+
@options.diff_format = :context
|
|
102
|
+
@differ = Spec::Expectations::Differs::Default.new(@options)
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
it "should output unified diff message of two objects" do
|
|
106
|
+
expected = Spec::Fixtures::Animal.new "bob", "giraffe"
|
|
107
|
+
actual = Spec::Fixtures::Animal.new "bob", "tortoise"
|
|
108
|
+
|
|
109
|
+
expected_diff = <<'EOD'
|
|
110
|
+
|
|
111
|
+
***************
|
|
112
|
+
*** 1,5 ****
|
|
113
|
+
<Animal
|
|
114
|
+
name=bob,
|
|
115
|
+
! species=tortoise
|
|
116
|
+
>
|
|
117
|
+
--- 1,5 ----
|
|
118
|
+
<Animal
|
|
119
|
+
name=bob,
|
|
120
|
+
! species=giraffe
|
|
121
|
+
>
|
|
122
|
+
EOD
|
|
123
|
+
|
|
124
|
+
diff = @differ.diff_as_object(expected,actual)
|
|
125
|
+
diff.should == expected_diff
|
|
126
|
+
end
|
|
127
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
|
|
2
|
+
|
|
3
|
+
describe Object, "#should" do
|
|
4
|
+
before(:each) do
|
|
5
|
+
@target = "target"
|
|
6
|
+
@matcher = mock("matcher")
|
|
7
|
+
@matcher.stub!(:matches?).and_return(true)
|
|
8
|
+
@matcher.stub!(:failure_message)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "should accept and interact with a matcher" do
|
|
12
|
+
@matcher.should_receive(:matches?).with(@target).and_return(true)
|
|
13
|
+
@target.should @matcher
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "should ask for a failure_message when matches? returns false" do
|
|
17
|
+
@matcher.should_receive(:matches?).with(@target).and_return(false)
|
|
18
|
+
@matcher.should_receive(:failure_message).and_return("the failure message")
|
|
19
|
+
lambda {
|
|
20
|
+
@target.should @matcher
|
|
21
|
+
}.should fail_with("the failure message")
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
describe Object, "#should_not" do
|
|
26
|
+
before(:each) do
|
|
27
|
+
@target = "target"
|
|
28
|
+
@matcher = mock("matcher")
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "should accept and interact with a matcher" do
|
|
32
|
+
@matcher.should_receive(:matches?).with(@target).and_return(false)
|
|
33
|
+
@matcher.stub!(:negative_failure_message)
|
|
34
|
+
|
|
35
|
+
@target.should_not @matcher
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it "should ask for a negative_failure_message when matches? returns true" do
|
|
39
|
+
@matcher.should_receive(:matches?).with(@target).and_return(true)
|
|
40
|
+
@matcher.should_receive(:negative_failure_message).and_return("the negative failure message")
|
|
41
|
+
lambda {
|
|
42
|
+
@target.should_not @matcher
|
|
43
|
+
}.should fail_with("the negative failure message")
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
|
2
|
+
|
|
3
|
+
describe Spec::Expectations, "#fail_with with no diff" do
|
|
4
|
+
before(:each) do
|
|
5
|
+
@old_differ = Spec::Expectations.differ
|
|
6
|
+
Spec::Expectations.differ = nil
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it "should handle just a message" do
|
|
10
|
+
lambda {
|
|
11
|
+
Spec::Expectations.fail_with "the message"
|
|
12
|
+
}.should fail_with("the message")
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should handle an Array" do
|
|
16
|
+
lambda {
|
|
17
|
+
Spec::Expectations.fail_with ["the message","expected","actual"]
|
|
18
|
+
}.should fail_with("the message")
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
after(:each) do
|
|
22
|
+
Spec::Expectations.differ = @old_differ
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
describe Spec::Expectations, "#fail_with with diff" do
|
|
27
|
+
before(:each) do
|
|
28
|
+
@old_differ = Spec::Expectations.differ
|
|
29
|
+
@differ = mock("differ")
|
|
30
|
+
Spec::Expectations.differ = @differ
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it "should not call differ if no expected/actual" do
|
|
34
|
+
lambda {
|
|
35
|
+
Spec::Expectations.fail_with "the message"
|
|
36
|
+
}.should fail_with("the message")
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
it "should call differ if expected/actual are presented separately" do
|
|
40
|
+
@differ.should_receive(:diff_as_string).and_return("diff")
|
|
41
|
+
lambda {
|
|
42
|
+
Spec::Expectations.fail_with "the message", "expected", "actual"
|
|
43
|
+
}.should fail_with("the message\nDiff:diff")
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it "should call differ if expected/actual are not strings" do
|
|
47
|
+
@differ.should_receive(:diff_as_object).and_return("diff")
|
|
48
|
+
lambda {
|
|
49
|
+
Spec::Expectations.fail_with "the message", :expected, :actual
|
|
50
|
+
}.should fail_with("the message\nDiff:diff")
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
it "should not call differ if expected or actual are procs" do
|
|
54
|
+
@differ.should_not_receive(:diff_as_string)
|
|
55
|
+
@differ.should_not_receive(:diff_as_object)
|
|
56
|
+
lambda {
|
|
57
|
+
Spec::Expectations.fail_with "the message", lambda {}, lambda {}
|
|
58
|
+
}.should fail_with("the message")
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
it "should call differ if expected/actual are presented in an Array with message" do
|
|
62
|
+
@differ.should_receive(:diff_as_string).with("actual","expected").and_return("diff")
|
|
63
|
+
lambda {
|
|
64
|
+
Spec::Expectations.fail_with(["the message", "expected", "actual"])
|
|
65
|
+
}.should fail_with(/the message\nDiff:diff/)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
after(:each) do
|
|
69
|
+
Spec::Expectations.differ = @old_differ
|
|
70
|
+
end
|
|
71
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
|
2
|
+
|
|
3
|
+
module Spec
|
|
4
|
+
module Matchers
|
|
5
|
+
describe "wrap_expectation" do
|
|
6
|
+
|
|
7
|
+
def stub_matcher
|
|
8
|
+
@_stub_matcher ||= simple_matcher do
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def failing_matcher
|
|
13
|
+
@_failing_matcher ||= simple_matcher do
|
|
14
|
+
1.should == 2
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it "should return true if there is no error" do
|
|
19
|
+
wrap_expectation stub_matcher do
|
|
20
|
+
end.should be_true
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it "should return false if there is an error" do
|
|
24
|
+
wrap_expectation failing_matcher do
|
|
25
|
+
raise "error"
|
|
26
|
+
end.should be_false
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib"
|
|
2
|
+
$:.unshift rspec_lib unless $:.include?(rspec_lib)
|
|
3
|
+
require 'test/unit'
|
|
4
|
+
require 'spec'
|
|
5
|
+
|
|
6
|
+
describe "example group with passing examples" do
|
|
7
|
+
it "should pass" do
|
|
8
|
+
true.should be_true
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib"
|
|
2
|
+
$:.unshift rspec_lib unless $:.include?(rspec_lib)
|
|
3
|
+
require 'test/unit'
|
|
4
|
+
require 'spec'
|
|
5
|
+
|
|
6
|
+
describe "example group with errors" do
|
|
7
|
+
it "should raise errors" do
|
|
8
|
+
raise "error raised in example group with errors"
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib"
|
|
2
|
+
$:.unshift rspec_lib unless $:.include?(rspec_lib)
|
|
3
|
+
require 'test/unit'
|
|
4
|
+
require 'spec'
|
|
5
|
+
|
|
6
|
+
describe "options hash" do
|
|
7
|
+
describe "#options" do
|
|
8
|
+
it "should expose the options hash" do
|
|
9
|
+
group = describe("group", :this => 'hash') {}
|
|
10
|
+
group.options[:this].should == 'hash'
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib"
|
|
2
|
+
$:.unshift rspec_lib unless $:.include?(rspec_lib)
|
|
3
|
+
require 'test/unit'
|
|
4
|
+
require 'spec'
|
|
5
|
+
|
|
6
|
+
class TestCaseThatFails < Test::Unit::TestCase
|
|
7
|
+
def test_that_fails
|
|
8
|
+
false.should be_true
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib"
|
|
2
|
+
$:.unshift rspec_lib unless $:.include?(rspec_lib)
|
|
3
|
+
require 'test/unit'
|
|
4
|
+
require 'spec'
|
|
5
|
+
|
|
6
|
+
class TestCaseThatPasses < Test::Unit::TestCase
|
|
7
|
+
def test_that_passes
|
|
8
|
+
true.should be_true
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib"
|
|
2
|
+
$:.unshift rspec_lib unless $:.include?(rspec_lib)
|
|
3
|
+
require 'test/unit'
|
|
4
|
+
require 'spec'
|
|
5
|
+
|
|
6
|
+
class TestCaseWithErrors < Test::Unit::TestCase
|
|
7
|
+
def test_with_error
|
|
8
|
+
raise "error raised in TestCaseWithErrors"
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib"
|
|
2
|
+
$:.unshift rspec_lib unless $:.include?(rspec_lib)
|
|
3
|
+
require "test/unit"
|
|
4
|
+
require "spec"
|
|
5
|
+
|
|
6
|
+
module Test
|
|
7
|
+
module Unit
|
|
8
|
+
describe TestSuiteAdapter do
|
|
9
|
+
def create_adapter(group)
|
|
10
|
+
TestSuiteAdapter.new(group)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
describe "#size" do
|
|
14
|
+
it "should return the number of examples in the example group" do
|
|
15
|
+
group = Class.new(Spec::ExampleGroup) do
|
|
16
|
+
describe("some examples")
|
|
17
|
+
it("bar") {}
|
|
18
|
+
it("baz") {}
|
|
19
|
+
end
|
|
20
|
+
adapter = create_adapter(group)
|
|
21
|
+
adapter.size.should == 2
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
describe "#delete" do
|
|
26
|
+
it "should do nothing" do
|
|
27
|
+
group = Class.new(Spec::ExampleGroup) do
|
|
28
|
+
describe("Some Examples")
|
|
29
|
+
it("does something") {}
|
|
30
|
+
end
|
|
31
|
+
adapter = create_adapter(group)
|
|
32
|
+
adapter.delete(adapter.examples.first)
|
|
33
|
+
adapter.should be_empty
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|