rspec 1.0.8 → 1.1.0
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/CHANGES +122 -2
- data/README +10 -9
- data/Rakefile +22 -49
- data/TODO +2 -0
- data/bin/spec +1 -1
- data/bin/spec_translator +8 -8
- data/examples/{auto_spec_description_example.rb → pure/autogenerated_docstrings_example.rb} +0 -0
- data/examples/{before_and_after_example.rb → pure/before_and_after_example.rb} +1 -0
- data/examples/{behave_as_example.rb → pure/behave_as_example.rb} +0 -0
- data/examples/{custom_expectation_matchers.rb → pure/custom_expectation_matchers.rb} +0 -0
- data/examples/{custom_formatter.rb → pure/custom_formatter.rb} +1 -0
- data/examples/{dynamic_spec.rb → pure/dynamic_spec.rb} +0 -0
- data/examples/{file_accessor.rb → pure/file_accessor.rb} +1 -0
- data/examples/{file_accessor_spec.rb → pure/file_accessor_spec.rb} +0 -0
- data/examples/{greeter_spec.rb → pure/greeter_spec.rb} +1 -0
- data/examples/{helper_method_example.rb → pure/helper_method_example.rb} +0 -0
- data/examples/{io_processor.rb → pure/io_processor.rb} +0 -0
- data/examples/{io_processor_spec.rb → pure/io_processor_spec.rb} +0 -0
- data/examples/{legacy_spec.rb → pure/legacy_spec.rb} +1 -0
- data/examples/{mocking_example.rb → pure/mocking_example.rb} +0 -0
- data/examples/pure/multi_threaded_behaviour_runner.rb +28 -0
- data/examples/pure/nested_classes_example.rb +36 -0
- data/examples/{partial_mock_example.rb → pure/partial_mock_example.rb} +0 -0
- data/examples/{pending_example.rb → pure/pending_example.rb} +0 -0
- data/examples/{predicate_example.rb → pure/predicate_example.rb} +0 -0
- data/examples/{priority.txt → pure/priority.txt} +0 -0
- data/examples/pure/shared_example_group_example.rb +66 -0
- data/examples/pure/shared_stack_examples.rb +38 -0
- data/examples/pure/spec_helper.rb +3 -0
- data/examples/{stack.rb → pure/stack.rb} +0 -0
- data/examples/{stack_spec.rb → pure/stack_spec.rb} +1 -35
- data/examples/pure/stack_spec_with_nested_example_groups.rb +67 -0
- data/examples/{stubbing_example.rb → pure/stubbing_example.rb} +0 -0
- data/examples/stories/adder.rb +13 -0
- data/examples/stories/addition +34 -0
- data/examples/stories/addition.rb +9 -0
- data/examples/stories/calculator.rb +65 -0
- data/examples/stories/game-of-life/README.txt +21 -0
- data/examples/stories/game-of-life/behaviour/everything.rb +6 -0
- data/examples/stories/game-of-life/behaviour/examples/examples.rb +3 -0
- data/examples/stories/game-of-life/behaviour/examples/game_behaviour.rb +35 -0
- data/examples/stories/game-of-life/behaviour/examples/grid_behaviour.rb +66 -0
- data/examples/stories/game-of-life/behaviour/stories/CellsWithLessThanTwoNeighboursDie.story +21 -0
- data/examples/stories/game-of-life/behaviour/stories/CellsWithMoreThanThreeNeighboursDie.story +21 -0
- data/examples/stories/game-of-life/behaviour/stories/EmptySpacesWithThreeNeighboursCreateACell.story +42 -0
- data/examples/stories/game-of-life/behaviour/stories/ICanCreateACell.story +42 -0
- data/examples/stories/game-of-life/behaviour/stories/ICanKillACell.story +17 -0
- data/examples/stories/game-of-life/behaviour/stories/TheGridWraps.story +53 -0
- data/examples/stories/game-of-life/behaviour/stories/create_a_cell.rb +52 -0
- data/examples/stories/game-of-life/behaviour/stories/helper.rb +6 -0
- data/examples/stories/game-of-life/behaviour/stories/kill_a_cell.rb +26 -0
- data/examples/stories/game-of-life/behaviour/stories/steps.rb +5 -0
- data/examples/stories/game-of-life/behaviour/stories/stories.rb +3 -0
- data/examples/stories/game-of-life/behaviour/stories/stories.txt +22 -0
- data/examples/stories/game-of-life/life.rb +3 -0
- data/examples/stories/game-of-life/life/game.rb +23 -0
- data/examples/stories/game-of-life/life/grid.rb +43 -0
- data/examples/stories/helper.rb +9 -0
- data/examples/stories/steps/addition_steps.rb +18 -0
- data/lib/autotest/rspec.rb +1 -2
- data/lib/spec.rb +30 -6
- data/lib/spec/example.rb +12 -0
- data/lib/spec/{dsl → example}/configuration.rb +48 -39
- data/lib/spec/{dsl → example}/errors.rb +2 -2
- data/lib/spec/example/example_group.rb +16 -0
- data/lib/spec/example/example_group_factory.rb +62 -0
- data/lib/spec/example/example_group_methods.rb +412 -0
- data/lib/spec/example/example_matcher.rb +42 -0
- data/lib/spec/example/example_methods.rb +101 -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 +58 -0
- data/lib/spec/expectations/differs/default.rb +15 -10
- data/lib/spec/expectations/errors.rb +7 -1
- data/lib/spec/expectations/extensions/object.rb +12 -7
- data/lib/spec/expectations/handler.rb +13 -4
- data/lib/spec/extensions.rb +2 -0
- data/lib/spec/extensions/class.rb +24 -0
- data/lib/spec/extensions/main.rb +54 -0
- data/lib/spec/extensions/object.rb +5 -1
- data/lib/spec/interop/test.rb +10 -0
- data/lib/spec/interop/test/unit/autorunner.rb +6 -0
- data/lib/spec/interop/test/unit/testcase.rb +61 -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 +60 -0
- data/lib/spec/matchers.rb +11 -15
- data/lib/spec/matchers/be.rb +23 -6
- data/lib/spec/matchers/change.rb +25 -1
- data/lib/spec/matchers/exist.rb +17 -0
- data/lib/spec/matchers/operator_matcher.rb +1 -0
- data/lib/spec/matchers/simple_matcher.rb +29 -0
- data/lib/spec/matchers/throw_symbol.rb +2 -0
- data/lib/spec/mocks.rb +5 -2
- data/lib/spec/mocks/argument_expectation.rb +1 -1
- data/lib/spec/mocks/message_expectation.rb +62 -44
- data/lib/spec/mocks/methods.rb +2 -2
- data/lib/spec/mocks/mock.rb +24 -3
- data/lib/spec/mocks/proxy.rb +26 -23
- data/lib/spec/mocks/space.rb +1 -1
- data/lib/spec/mocks/spec_methods.rb +20 -12
- data/lib/spec/rake/spectask.rb +19 -1
- data/lib/spec/rake/verify_rcov.rb +1 -1
- data/lib/spec/runner.rb +33 -10
- data/lib/spec/runner/backtrace_tweaker.rb +3 -3
- data/lib/spec/runner/class_and_arguments_parser.rb +16 -0
- data/lib/spec/runner/command_line.rb +18 -12
- data/lib/spec/runner/drb_command_line.rb +4 -5
- data/lib/spec/runner/example_group_runner.rb +59 -0
- data/lib/spec/runner/formatter/base_formatter.rb +10 -8
- data/lib/spec/runner/formatter/base_text_formatter.rb +18 -18
- data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +31 -0
- data/lib/spec/runner/formatter/failing_examples_formatter.rb +3 -5
- data/lib/spec/runner/formatter/html_formatter.rb +37 -27
- data/lib/spec/runner/formatter/profile_formatter.rb +47 -0
- data/lib/spec/runner/formatter/progress_bar_formatter.rb +3 -4
- data/lib/spec/runner/formatter/specdoc_formatter.rb +27 -13
- data/lib/spec/runner/formatter/story/html_formatter.rb +124 -0
- data/lib/spec/runner/formatter/story/plain_text_formatter.rb +123 -0
- data/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
- data/lib/spec/runner/heckle_runner.rb +9 -9
- data/lib/spec/runner/option_parser.rb +140 -138
- data/lib/spec/runner/options.rb +168 -90
- data/lib/spec/runner/reporter.rb +58 -40
- data/lib/spec/runner/spec_parser.rb +11 -8
- data/lib/spec/story.rb +10 -0
- data/lib/spec/story/extensions.rb +1 -0
- data/lib/spec/story/extensions/main.rb +86 -0
- data/lib/spec/story/given_scenario.rb +14 -0
- data/lib/spec/story/runner.rb +58 -0
- data/lib/spec/story/runner/plain_text_story_runner.rb +48 -0
- data/lib/spec/story/runner/scenario_collector.rb +18 -0
- data/lib/spec/story/runner/scenario_runner.rb +46 -0
- data/lib/spec/story/runner/story_mediator.rb +123 -0
- data/lib/spec/story/runner/story_parser.rb +227 -0
- data/lib/spec/story/runner/story_runner.rb +67 -0
- data/lib/spec/story/scenario.rb +14 -0
- data/lib/spec/story/step.rb +48 -0
- data/lib/spec/story/step_group.rb +89 -0
- data/lib/spec/story/step_mother.rb +37 -0
- data/lib/spec/story/story.rb +42 -0
- data/lib/spec/story/world.rb +124 -0
- data/lib/spec/version.rb +4 -5
- data/plugins/mock_frameworks/rspec.rb +1 -1
- data/spec/autotest/rspec_spec.rb +13 -7
- data/spec/autotest_helper.rb +4 -3
- data/spec/rspec_suite.rb +7 -0
- data/spec/ruby_forker.rb +13 -0
- data/spec/spec/example/configuration_spec.rb +290 -0
- data/spec/spec/example/example_group_class_definition_spec.rb +48 -0
- data/spec/spec/example/example_group_factory_spec.rb +129 -0
- data/spec/spec/example/example_group_methods_spec.rb +465 -0
- data/spec/spec/example/example_group_spec.rb +711 -0
- data/spec/spec/{dsl → example}/example_matcher_spec.rb +23 -18
- data/spec/spec/example/example_methods_spec.rb +75 -0
- data/spec/spec/example/example_runner_spec.rb +194 -0
- data/spec/spec/example/example_spec.rb +53 -0
- data/spec/spec/example/nested_example_group_spec.rb +59 -0
- data/spec/spec/example/pending_module_spec.rb +31 -0
- data/spec/spec/{dsl → example}/predicate_matcher_spec.rb +1 -1
- data/spec/spec/example/shared_example_group_spec.rb +265 -0
- data/spec/spec/example/subclassing_example_group_spec.rb +25 -0
- data/spec/spec/expectations/differs/default_spec.rb +5 -3
- data/spec/spec/expectations/extensions/object_spec.rb +63 -2
- data/spec/spec/extensions/main_spec.rb +50 -0
- data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +14 -0
- data/spec/spec/interop/test/unit/testcase_spec.rb +10 -0
- data/spec/spec/interop/test/unit/testcase_spec_with_test_unit.rb +20 -0
- data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
- data/spec/spec/interop/test/unit/testsuite_adapter_spec_with_test_unit.rb +34 -0
- data/spec/spec/matchers/be_spec.rb +15 -0
- data/spec/spec/matchers/change_spec.rb +87 -0
- data/spec/spec/matchers/description_generation_spec.rb +31 -37
- data/spec/spec/matchers/exist_spec.rb +31 -22
- data/spec/spec/matchers/handler_spec.rb +42 -1
- data/spec/spec/matchers/have_spec.rb +1 -1
- data/spec/spec/matchers/mock_constraint_matchers_spec.rb +1 -1
- data/spec/spec/matchers/operator_matcher_spec.rb +1 -1
- data/spec/spec/matchers/simple_matcher_spec.rb +31 -0
- data/spec/spec/matchers/throw_symbol_spec.rb +4 -1
- data/spec/spec/mocks/bug_report_10263.rb +24 -0
- data/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
- data/spec/spec/mocks/bug_report_8165_spec.rb +2 -2
- data/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +1 -0
- data/spec/spec/mocks/mock_spec.rb +200 -102
- data/spec/spec/mocks/multiple_return_value_spec.rb +1 -1
- data/spec/spec/mocks/options_hash_spec.rb +19 -7
- data/spec/spec/mocks/partial_mock_spec.rb +31 -9
- data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +6 -0
- data/spec/spec/mocks/stub_spec.rb +120 -98
- data/spec/spec/package/bin_spec_spec.rb +7 -5
- data/spec/spec/runner/class_and_argument_parser_spec.rb +23 -0
- data/spec/spec/runner/command_line_spec.rb +140 -27
- data/spec/spec/runner/drb_command_line_spec.rb +39 -31
- data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +44 -0
- data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +16 -11
- data/spec/spec/runner/formatter/html_formatter_spec.rb +60 -50
- data/spec/spec/runner/formatter/profile_formatter_spec.rb +65 -0
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +29 -13
- data/spec/spec/runner/formatter/snippet_extractor_spec.rb +14 -7
- data/spec/spec/runner/formatter/spec_mate_formatter_spec.rb +103 -0
- data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +103 -39
- data/spec/spec/runner/formatter/story/html_formatter_spec.rb +56 -0
- data/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +289 -0
- data/spec/spec/runner/heckle_runner_spec.rb +29 -14
- data/spec/spec/runner/heckler_spec.rb +4 -5
- data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +5 -5
- data/spec/spec/runner/option_parser_spec.rb +86 -58
- data/spec/spec/runner/options_spec.rb +239 -120
- 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 +6 -6
- data/spec/spec/runner/reporter_spec.rb +147 -163
- data/spec/spec/runner/spec_parser_spec.rb +31 -0
- data/spec/spec/runner_spec.rb +11 -0
- data/spec/spec/spec_classes.rb +12 -5
- data/spec/spec/story/builders.rb +46 -0
- data/spec/spec/story/extensions/main_spec.rb +161 -0
- data/spec/spec/story/extensions_spec.rb +14 -0
- data/spec/spec/story/given_scenario_spec.rb +27 -0
- data/spec/spec/story/runner/plain_text_story_runner_spec.rb +92 -0
- data/spec/spec/story/runner/scenario_collector_spec.rb +27 -0
- data/spec/spec/story/runner/scenario_runner_spec.rb +142 -0
- data/spec/spec/story/runner/story_mediator_spec.rb +133 -0
- data/spec/spec/story/runner/story_parser_spec.rb +384 -0
- data/spec/spec/story/runner/story_runner_spec.rb +219 -0
- data/spec/spec/story/runner_spec.rb +106 -0
- data/spec/spec/story/scenario_spec.rb +20 -0
- data/spec/spec/story/step_group_spec.rb +157 -0
- data/spec/spec/story/step_mother_spec.rb +72 -0
- data/spec/spec/story/step_spec.rb +147 -0
- data/spec/spec/story/story_helper.rb +2 -0
- data/spec/spec/story/story_spec.rb +86 -0
- data/spec/spec/story/world_spec.rb +416 -0
- data/spec/spec/translator_spec.rb +2 -1
- data/spec/spec_helper.rb +59 -2
- data/stories/all.rb +5 -0
- data/stories/example_groups/autogenerated_docstrings +26 -0
- data/stories/example_groups/example_group_with_should_methods +17 -0
- data/stories/example_groups/nested_groups +17 -0
- data/stories/example_groups/output +20 -0
- data/stories/example_groups/stories.rb +7 -0
- data/stories/helper.rb +6 -0
- data/stories/interop/examples_and_tests_together +30 -0
- data/stories/interop/stories.rb +7 -0
- data/stories/interop/test_case_with_should_methods +17 -0
- data/stories/pending_stories/README +3 -0
- data/stories/resources/helpers/cmdline.rb +9 -0
- data/stories/resources/helpers/story_helper.rb +16 -0
- data/stories/resources/matchers/smart_match.rb +37 -0
- data/stories/resources/spec/example_group_with_should_methods.rb +12 -0
- data/stories/resources/spec/simple_spec.rb +8 -0
- data/stories/resources/steps/running_rspec.rb +50 -0
- data/stories/resources/test/spec_and_test_together.rb +57 -0
- data/stories/resources/test/test_case_with_should_methods.rb +30 -0
- metadata +232 -106
- data/EXAMPLES.rd +0 -111
- data/examples/multi_threaded_behaviour_runner.rb +0 -25
- data/examples/shared_behaviours_example.rb +0 -39
- data/examples/spec_helper.rb +0 -1
- data/examples/test_case_adapter_example.rb +0 -26
- data/examples/test_case_spec.rb +0 -65
- data/lib/spec/dsl.rb +0 -11
- data/lib/spec/dsl/behaviour.rb +0 -220
- data/lib/spec/dsl/behaviour_callbacks.rb +0 -82
- data/lib/spec/dsl/behaviour_eval.rb +0 -231
- data/lib/spec/dsl/behaviour_factory.rb +0 -42
- data/lib/spec/dsl/composite_proc_builder.rb +0 -33
- data/lib/spec/dsl/description.rb +0 -76
- data/lib/spec/dsl/example.rb +0 -135
- data/lib/spec/dsl/example_matcher.rb +0 -40
- data/lib/spec/dsl/example_should_raise_handler.rb +0 -74
- data/lib/spec/runner/behaviour_runner.rb +0 -123
- data/lib/spec/runner/extensions/kernel.rb +0 -50
- data/lib/spec/runner/extensions/object.rb +0 -32
- data/lib/spec/runner/formatter.rb +0 -9
- data/lib/spec/runner/formatter/failing_behaviours_formatter.rb +0 -29
- data/lib/spec/runner/formatter/rdoc_formatter.rb +0 -24
- data/lib/spec/test_case_adapter.rb +0 -10
- data/spec/spec/dsl/behaviour_eval_spec.rb +0 -79
- data/spec/spec/dsl/behaviour_factory_spec.rb +0 -48
- data/spec/spec/dsl/behaviour_spec.rb +0 -661
- data/spec/spec/dsl/composite_proc_builder_spec.rb +0 -44
- data/spec/spec/dsl/configuration_spec.rb +0 -55
- data/spec/spec/dsl/description_spec.rb +0 -89
- data/spec/spec/dsl/example_class_spec.rb +0 -24
- data/spec/spec/dsl/example_instance_spec.rb +0 -160
- data/spec/spec/dsl/example_should_raise_spec.rb +0 -137
- data/spec/spec/dsl/shared_behaviour_spec.rb +0 -252
- data/spec/spec/runner/behaviour_runner_spec.rb +0 -229
- data/spec/spec/runner/context_matching_spec.rb +0 -27
- data/spec/spec/runner/extensions/bug_report_10577_spec.rb +0 -35
- data/spec/spec/runner/extensions/kernel_spec.rb +0 -36
- data/spec/spec/runner/formatter/failing_behaviours_formatter_spec.rb +0 -40
- data/spec/spec/runner/formatter/progress_bar_formatter_dry_run_spec.rb +0 -20
- data/spec/spec/runner/formatter/progress_bar_formatter_failure_dump_spec.rb +0 -36
- data/spec/spec/runner/formatter/rdoc_formatter_dry_run_spec.rb +0 -19
- data/spec/spec/runner/formatter/rdoc_formatter_spec.rb +0 -46
- data/spec/spec/runner/formatter/specdoc_formatter_dry_run_spec.rb +0 -21
- data/spec/spec/runner/object_ext_spec.rb +0 -11
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../spec_helper'
|
2
|
+
require File.dirname(__FILE__) + '/../../../../ruby_forker'
|
3
|
+
|
4
|
+
describe "Test::Unit interop", :shared => true do
|
5
|
+
include RubyForker
|
6
|
+
|
7
|
+
def run_script(file_name)
|
8
|
+
output = ruby(file_name)
|
9
|
+
if !$?.success? || output.include?("FAILED") || output.include?("Error")
|
10
|
+
raise output
|
11
|
+
end
|
12
|
+
output
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_unit_spec_helper'
|
2
|
+
|
3
|
+
describe "Test::Unit::TestCase" do
|
4
|
+
it_should_behave_like "Test::Unit interop"
|
5
|
+
it "should pass" do
|
6
|
+
dir = File.dirname(__FILE__)
|
7
|
+
output = run_script("#{dir}/testcase_spec_with_test_unit.rb")
|
8
|
+
output.should include("3 examples, 0 failures")
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require "test/unit"
|
2
|
+
require File.dirname(__FILE__) + '/../../../../spec_helper.rb'
|
3
|
+
|
4
|
+
describe "TestCase#method_name" do
|
5
|
+
it "should equal the description of the example" do
|
6
|
+
@method_name.should == "should equal the description of the example"
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_this
|
10
|
+
true.should be_true
|
11
|
+
end
|
12
|
+
|
13
|
+
def testThis
|
14
|
+
true.should be_true
|
15
|
+
end
|
16
|
+
|
17
|
+
def testament
|
18
|
+
raise "testament is not a test"
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_unit_spec_helper'
|
2
|
+
|
3
|
+
describe "TestSuiteAdapter" do
|
4
|
+
it_should_behave_like "Test::Unit interop"
|
5
|
+
it "should pass" do
|
6
|
+
dir = File.dirname(__FILE__)
|
7
|
+
run_script "#{dir}/testsuite_adapter_spec_with_test_unit.rb"
|
8
|
+
end
|
9
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require "test/unit"
|
2
|
+
require File.dirname(__FILE__) + '/../../../../spec_helper.rb'
|
3
|
+
|
4
|
+
module TestSuiteAdapterSpecHelper
|
5
|
+
def create_adapter(group)
|
6
|
+
Test::Unit::TestSuiteAdapter.new(group)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "TestSuiteAdapter#size" do
|
11
|
+
include TestSuiteAdapterSpecHelper
|
12
|
+
it "should return the number of examples in the example group" do
|
13
|
+
group = Class.new(Spec::ExampleGroup) do
|
14
|
+
describe("some examples")
|
15
|
+
it("bar") {}
|
16
|
+
it("baz") {}
|
17
|
+
end
|
18
|
+
adapter = create_adapter(group)
|
19
|
+
adapter.size.should == 2
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "TestSuiteAdapter#delete" do
|
24
|
+
include TestSuiteAdapterSpecHelper
|
25
|
+
it "should do nothing" do
|
26
|
+
group = Class.new(Spec::ExampleGroup) do
|
27
|
+
describe("Some Examples")
|
28
|
+
it("does something") {}
|
29
|
+
end
|
30
|
+
adapter = create_adapter(group)
|
31
|
+
adapter.delete(adapter.examples.first)
|
32
|
+
adapter.should be_empty
|
33
|
+
end
|
34
|
+
end
|
@@ -199,6 +199,21 @@ describe "should be ===" do
|
|
199
199
|
end
|
200
200
|
end
|
201
201
|
|
202
|
+
describe "should be" do
|
203
|
+
it "should pass if actual is true or a set value" do
|
204
|
+
true.should be
|
205
|
+
1.should be
|
206
|
+
end
|
207
|
+
|
208
|
+
it "should fail if actual is false" do
|
209
|
+
lambda {false.should be}.should fail_with("expected if to be satisfied, got false")
|
210
|
+
end
|
211
|
+
|
212
|
+
it "should fail if actual is nil" do
|
213
|
+
lambda {nil.should be}.should fail_with("expected if to be satisfied, got nil")
|
214
|
+
end
|
215
|
+
end
|
216
|
+
|
202
217
|
describe "should be(value)" do
|
203
218
|
it "should pass if actual.equal?(value)" do
|
204
219
|
5.should be(5)
|
@@ -133,6 +133,93 @@ describe "should change{ block }.by(expected)" do
|
|
133
133
|
end
|
134
134
|
end
|
135
135
|
|
136
|
+
describe "should change(actual, message).by_at_least(expected)" do
|
137
|
+
before(:each) do
|
138
|
+
@instance = SomethingExpected.new
|
139
|
+
@instance.some_value = 5
|
140
|
+
end
|
141
|
+
|
142
|
+
it "should pass when attribute is changed by greater than the expected amount" do
|
143
|
+
lambda { @instance.some_value += 2 }.should change(@instance, :some_value).by_at_least(1)
|
144
|
+
end
|
145
|
+
|
146
|
+
it "should pass when attribute is changed by the expected amount" do
|
147
|
+
lambda { @instance.some_value += 2 }.should change(@instance, :some_value).by_at_least(2)
|
148
|
+
end
|
149
|
+
|
150
|
+
it "should fail when the attribute is changed by less than the expected amount" do
|
151
|
+
lambda do
|
152
|
+
lambda { @instance.some_value += 1 }.should change(@instance, :some_value).by_at_least(2)
|
153
|
+
end.should fail_with("some_value should have been changed by at least 2, but was changed by 1")
|
154
|
+
end
|
155
|
+
|
156
|
+
end
|
157
|
+
|
158
|
+
describe "should change{ block }.by_at_least(expected)" do
|
159
|
+
before(:each) do
|
160
|
+
@instance = SomethingExpected.new
|
161
|
+
@instance.some_value = 5
|
162
|
+
end
|
163
|
+
|
164
|
+
it "should pass when attribute is changed by greater than expected amount" do
|
165
|
+
lambda { @instance.some_value += 2 }.should change{@instance.some_value}.by_at_least(1)
|
166
|
+
end
|
167
|
+
|
168
|
+
it "should pass when attribute is changed by the expected amount" do
|
169
|
+
lambda { @instance.some_value += 2 }.should change{@instance.some_value}.by_at_least(2)
|
170
|
+
end
|
171
|
+
|
172
|
+
it "should fail when the attribute is changed by less than the unexpected amount" do
|
173
|
+
lambda do
|
174
|
+
lambda { @instance.some_value += 1 }.should change{@instance.some_value}.by_at_least(2)
|
175
|
+
end.should fail_with("result should have been changed by at least 2, but was changed by 1")
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
|
180
|
+
describe "should change(actual, message).by_at_most(expected)" do
|
181
|
+
before(:each) do
|
182
|
+
@instance = SomethingExpected.new
|
183
|
+
@instance.some_value = 5
|
184
|
+
end
|
185
|
+
|
186
|
+
it "should pass when attribute is changed by less than the expected amount" do
|
187
|
+
lambda { @instance.some_value += 2 }.should change(@instance, :some_value).by_at_most(3)
|
188
|
+
end
|
189
|
+
|
190
|
+
it "should pass when attribute is changed by the expected amount" do
|
191
|
+
lambda { @instance.some_value += 2 }.should change(@instance, :some_value).by_at_most(2)
|
192
|
+
end
|
193
|
+
|
194
|
+
it "should fail when the attribute is changed by greater than the expected amount" do
|
195
|
+
lambda do
|
196
|
+
lambda { @instance.some_value += 2 }.should change(@instance, :some_value).by_at_most(1)
|
197
|
+
end.should fail_with("some_value should have been changed by at most 1, but was changed by 2")
|
198
|
+
end
|
199
|
+
|
200
|
+
end
|
201
|
+
|
202
|
+
describe "should change{ block }.by_at_most(expected)" do
|
203
|
+
before(:each) do
|
204
|
+
@instance = SomethingExpected.new
|
205
|
+
@instance.some_value = 5
|
206
|
+
end
|
207
|
+
|
208
|
+
it "should pass when attribute is changed by less than expected amount" do
|
209
|
+
lambda { @instance.some_value += 2 }.should change{@instance.some_value}.by_at_most(3)
|
210
|
+
end
|
211
|
+
|
212
|
+
it "should pass when attribute is changed by the expected amount" do
|
213
|
+
lambda { @instance.some_value += 2 }.should change{@instance.some_value}.by_at_most(2)
|
214
|
+
end
|
215
|
+
|
216
|
+
it "should fail when the attribute is changed by greater than the unexpected amount" do
|
217
|
+
lambda do
|
218
|
+
lambda { @instance.some_value += 2 }.should change{@instance.some_value}.by_at_most(1)
|
219
|
+
end.should fail_with("result should have been changed by at most 1, but was changed by 2")
|
220
|
+
end
|
221
|
+
end
|
222
|
+
|
136
223
|
describe "should change(actual, message).from(old)" do
|
137
224
|
before(:each) do
|
138
225
|
@instance = SomethingExpected.new
|
@@ -1,148 +1,146 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
2
|
|
3
3
|
describe "Matchers should be able to generate their own descriptions" do
|
4
|
-
|
5
|
-
|
6
|
-
@callback = lambda { |desc| @desc = desc }
|
7
|
-
Spec::Matchers.description_generated(@callback)
|
4
|
+
after(:each) do
|
5
|
+
Spec::Matchers.clear_generated_description
|
8
6
|
end
|
9
|
-
|
7
|
+
|
10
8
|
it "should == expected" do
|
11
9
|
"this".should == "this"
|
12
|
-
|
10
|
+
Spec::Matchers.generated_description.should == "should == \"this\""
|
13
11
|
end
|
14
12
|
|
15
13
|
it "should not == expected" do
|
16
14
|
"this".should_not == "that"
|
17
|
-
|
15
|
+
Spec::Matchers.generated_description.should == "should not == \"that\""
|
18
16
|
end
|
19
17
|
|
20
18
|
it "should be empty (arbitrary predicate)" do
|
21
19
|
[].should be_empty
|
22
|
-
|
20
|
+
Spec::Matchers.generated_description.should == "should be empty"
|
23
21
|
end
|
24
22
|
|
25
23
|
it "should not be empty (arbitrary predicate)" do
|
26
24
|
[1].should_not be_empty
|
27
|
-
|
25
|
+
Spec::Matchers.generated_description.should == "should not be empty"
|
28
26
|
end
|
29
27
|
|
30
28
|
it "should be true" do
|
31
29
|
true.should be_true
|
32
|
-
|
30
|
+
Spec::Matchers.generated_description.should == "should be true"
|
33
31
|
end
|
34
32
|
|
35
33
|
it "should be false" do
|
36
34
|
false.should be_false
|
37
|
-
|
35
|
+
Spec::Matchers.generated_description.should == "should be false"
|
38
36
|
end
|
39
37
|
|
40
38
|
it "should be nil" do
|
41
39
|
nil.should be_nil
|
42
|
-
|
40
|
+
Spec::Matchers.generated_description.should == "should be nil"
|
43
41
|
end
|
44
42
|
|
45
43
|
it "should be > n" do
|
46
44
|
5.should be > 3
|
47
|
-
|
45
|
+
Spec::Matchers.generated_description.should == "should be > 3"
|
48
46
|
end
|
49
47
|
|
50
48
|
it "should be predicate arg1, arg2 and arg3" do
|
51
49
|
5.0.should be_between(0,10)
|
52
|
-
|
50
|
+
Spec::Matchers.generated_description.should == "should be between 0 and 10"
|
53
51
|
end
|
54
52
|
|
55
53
|
it "should be_few_words predicate should be transformed to 'be few words'" do
|
56
54
|
5.should be_kind_of(Fixnum)
|
57
|
-
|
55
|
+
Spec::Matchers.generated_description.should == "should be kind of Fixnum"
|
58
56
|
end
|
59
57
|
|
60
58
|
it "should preserve a proper prefix for be predicate" do
|
61
59
|
5.should be_a_kind_of(Fixnum)
|
62
|
-
|
60
|
+
Spec::Matchers.generated_description.should == "should be a kind of Fixnum"
|
63
61
|
5.should be_an_instance_of(Fixnum)
|
64
|
-
|
62
|
+
Spec::Matchers.generated_description.should == "should be an instance of Fixnum"
|
65
63
|
end
|
66
64
|
|
67
65
|
it "should equal" do
|
68
66
|
expected = "expected"
|
69
67
|
expected.should equal(expected)
|
70
|
-
|
68
|
+
Spec::Matchers.generated_description.should == "should equal \"expected\""
|
71
69
|
end
|
72
70
|
|
73
71
|
it "should_not equal" do
|
74
72
|
5.should_not equal(37)
|
75
|
-
|
73
|
+
Spec::Matchers.generated_description.should == "should not equal 37"
|
76
74
|
end
|
77
75
|
|
78
76
|
it "should eql" do
|
79
77
|
"string".should eql("string")
|
80
|
-
|
78
|
+
Spec::Matchers.generated_description.should == "should eql \"string\""
|
81
79
|
end
|
82
80
|
|
83
81
|
it "should not eql" do
|
84
82
|
"a".should_not eql(:a)
|
85
|
-
|
83
|
+
Spec::Matchers.generated_description.should == "should not eql :a"
|
86
84
|
end
|
87
85
|
|
88
86
|
it "should have_key" do
|
89
87
|
{:a => "a"}.should have_key(:a)
|
90
|
-
|
88
|
+
Spec::Matchers.generated_description.should == "should have key :a"
|
91
89
|
end
|
92
90
|
|
93
91
|
it "should have n items" do
|
94
92
|
team.should have(3).players
|
95
|
-
|
93
|
+
Spec::Matchers.generated_description.should == "should have 3 players"
|
96
94
|
end
|
97
95
|
|
98
96
|
it "should have at least n items" do
|
99
97
|
team.should have_at_least(2).players
|
100
|
-
|
98
|
+
Spec::Matchers.generated_description.should == "should have at least 2 players"
|
101
99
|
end
|
102
100
|
|
103
101
|
it "should have at most n items" do
|
104
102
|
team.should have_at_most(4).players
|
105
|
-
|
103
|
+
Spec::Matchers.generated_description.should == "should have at most 4 players"
|
106
104
|
end
|
107
105
|
|
108
106
|
it "should include" do
|
109
107
|
[1,2,3].should include(3)
|
110
|
-
|
108
|
+
Spec::Matchers.generated_description.should == "should include 3"
|
111
109
|
end
|
112
110
|
|
113
111
|
it "should match" do
|
114
112
|
"this string".should match(/this string/)
|
115
|
-
|
113
|
+
Spec::Matchers.generated_description.should == "should match /this string/"
|
116
114
|
end
|
117
115
|
|
118
116
|
it "should raise_error" do
|
119
117
|
lambda { raise }.should raise_error
|
120
|
-
|
118
|
+
Spec::Matchers.generated_description.should == "should raise Exception"
|
121
119
|
end
|
122
120
|
|
123
121
|
it "should raise_error with type" do
|
124
122
|
lambda { raise }.should raise_error(RuntimeError)
|
125
|
-
|
123
|
+
Spec::Matchers.generated_description.should == "should raise RuntimeError"
|
126
124
|
end
|
127
125
|
|
128
126
|
it "should raise_error with type and message" do
|
129
127
|
lambda { raise "there was an error" }.should raise_error(RuntimeError, "there was an error")
|
130
|
-
|
128
|
+
Spec::Matchers.generated_description.should == "should raise RuntimeError with \"there was an error\""
|
131
129
|
end
|
132
130
|
|
133
131
|
it "should respond_to" do
|
134
132
|
[].should respond_to(:insert)
|
135
|
-
|
133
|
+
Spec::Matchers.generated_description.should == "should respond to #insert"
|
136
134
|
end
|
137
135
|
|
138
136
|
it "should throw symbol" do
|
139
137
|
lambda { throw :what_a_mess }.should throw_symbol
|
140
|
-
|
138
|
+
Spec::Matchers.generated_description.should == "should throw a Symbol"
|
141
139
|
end
|
142
140
|
|
143
141
|
it "should throw symbol (with named symbol)" do
|
144
142
|
lambda { throw :what_a_mess }.should throw_symbol(:what_a_mess)
|
145
|
-
|
143
|
+
Spec::Matchers.generated_description.should == "should throw :what_a_mess"
|
146
144
|
end
|
147
145
|
|
148
146
|
def team
|
@@ -152,8 +150,4 @@ describe "Matchers should be able to generate their own descriptions" do
|
|
152
150
|
end
|
153
151
|
end.new
|
154
152
|
end
|
155
|
-
|
156
|
-
after(:each) do
|
157
|
-
Spec::Matchers.unregister_description_generated(@callback)
|
158
|
-
end
|
159
153
|
end
|
@@ -1,8 +1,5 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
2
|
|
3
|
-
# NOTE - this was initially handled by an explicit matcher, but is now
|
4
|
-
# handled by a default set of predicate_matchers.
|
5
|
-
|
6
3
|
class Substance
|
7
4
|
def initialize exists, description
|
8
5
|
@exists = exists
|
@@ -16,33 +13,45 @@ class Substance
|
|
16
13
|
end
|
17
14
|
end
|
18
15
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
@
|
16
|
+
class SubstanceTester
|
17
|
+
include Spec::Matchers
|
18
|
+
def initialize substance
|
19
|
+
@substance = substance
|
23
20
|
end
|
24
|
-
|
25
|
-
|
26
|
-
@real.should exist
|
27
|
-
end
|
28
|
-
|
29
|
-
it "should fail if target does not exist" do
|
30
|
-
lambda { @imaginary.should exist }.
|
31
|
-
should fail
|
21
|
+
def should_exist
|
22
|
+
@substance.should exist
|
32
23
|
end
|
33
24
|
end
|
34
25
|
|
35
|
-
describe "
|
26
|
+
describe "should exist," do
|
27
|
+
|
36
28
|
before(:each) do
|
37
29
|
@real = Substance.new true, 'something real'
|
38
30
|
@imaginary = Substance.new false, 'something imaginary'
|
39
31
|
end
|
40
|
-
|
41
|
-
|
32
|
+
|
33
|
+
describe "within an example group" do
|
34
|
+
|
35
|
+
it "should pass if target exists" do
|
36
|
+
@real.should exist
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should fail if target does not exist" do
|
40
|
+
lambda { @imaginary.should exist }.should fail
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should pass if target doesn't exist" do
|
44
|
+
lambda { @real.should_not exist }.should fail
|
45
|
+
end
|
42
46
|
end
|
43
|
-
|
44
|
-
|
45
|
-
|
47
|
+
|
48
|
+
describe "outside of an example group" do
|
49
|
+
|
50
|
+
it "should pass if target exists" do
|
51
|
+
real_tester = SubstanceTester.new @real
|
52
|
+
real_tester.should_exist
|
53
|
+
end
|
54
|
+
|
46
55
|
end
|
56
|
+
|
47
57
|
end
|
48
|
-
|