rspec 0.7.5.1 → 0.8.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 +60 -1
- data/EXAMPLES.rd +38 -19
- data/MIT-LICENSE +1 -1
- data/README +24 -17
- data/RELEASE-PLAN +117 -0
- data/Rakefile +24 -18
- data/TODO.0.8.0 +5 -0
- data/examples/auto_spec_name_generation_example.rb +18 -0
- data/examples/custom_expectation_matchers.rb +53 -0
- data/examples/dynamic_spec.rb +9 -0
- data/examples/io_processor_spec.rb +2 -2
- data/examples/mocking_example.rb +4 -4
- data/examples/partial_mock_example.rb +2 -2
- data/examples/predicate_example.rb +2 -2
- data/examples/stack_spec.rb +32 -36
- data/examples/stubbing_example.rb +19 -19
- data/examples/test_case_spec.rb +6 -6
- data/lib/spec.rb +3 -0
- data/lib/spec/callback.rb +8 -0
- data/lib/spec/callback/extensions/object.rb +4 -0
- data/lib/spec/deprecated.rb +3 -0
- data/lib/spec/expectations.rb +44 -17
- data/lib/spec/expectations/extensions.rb +1 -2
- data/lib/spec/expectations/extensions/object.rb +78 -130
- data/lib/spec/expectations/extensions/string_and_symbol.rb +17 -0
- data/lib/spec/expectations/handler.rb +47 -0
- data/lib/spec/expectations/should/base.rb +32 -29
- data/lib/spec/expectations/should/change.rb +1 -1
- data/lib/spec/expectations/should/have.rb +9 -17
- data/lib/spec/expectations/should/not.rb +54 -56
- data/lib/spec/expectations/should/should.rb +59 -65
- data/lib/spec/expectations/sugar.rb +27 -4
- data/lib/spec/matchers.rb +160 -0
- data/lib/spec/matchers/be.rb +161 -0
- data/lib/spec/matchers/be_close.rb +37 -0
- data/lib/spec/matchers/change.rb +120 -0
- data/lib/spec/matchers/eql.rb +43 -0
- data/lib/spec/matchers/equal.rb +43 -0
- data/lib/spec/matchers/has.rb +44 -0
- data/lib/spec/matchers/have.rb +140 -0
- data/lib/spec/matchers/include.rb +50 -0
- data/lib/spec/matchers/match.rb +41 -0
- data/lib/spec/matchers/raise_error.rb +100 -0
- data/lib/spec/matchers/respond_to.rb +35 -0
- data/lib/spec/matchers/satisfy.rb +47 -0
- data/lib/spec/matchers/throw_symbol.rb +75 -0
- data/lib/spec/mocks.rb +224 -1
- data/lib/spec/mocks/argument_expectation.rb +16 -2
- data/lib/spec/mocks/error_generator.rb +5 -3
- data/lib/spec/mocks/errors.rb +2 -2
- data/lib/spec/mocks/extensions/object.rb +1 -1
- data/lib/spec/mocks/message_expectation.rb +29 -19
- data/lib/spec/mocks/{mock_methods.rb → methods.rb} +5 -5
- data/lib/spec/mocks/mock.rb +2 -2
- data/lib/spec/mocks/mock_handler.rb +81 -68
- data/lib/spec/rake/spectask.rb +7 -12
- data/lib/spec/rake/verify_rcov.rb +1 -1
- data/lib/spec/runner.rb +117 -0
- data/lib/spec/runner/command_line.rb +8 -5
- data/lib/spec/runner/context.rb +13 -37
- data/lib/spec/runner/context_eval.rb +4 -3
- data/lib/spec/runner/context_runner.rb +7 -4
- data/lib/spec/runner/drb_command_line.rb +1 -1
- data/lib/spec/runner/execution_context.rb +3 -11
- data/lib/spec/runner/extensions/kernel.rb +7 -5
- data/lib/spec/runner/extensions/object.rb +4 -1
- data/lib/spec/runner/formatter/base_text_formatter.rb +11 -3
- data/lib/spec/runner/formatter/html_formatter.rb +21 -10
- data/lib/spec/runner/heckle_runner.rb +24 -8
- data/lib/spec/runner/heckle_runner_win.rb +10 -0
- data/lib/spec/runner/option_parser.rb +58 -13
- data/lib/spec/runner/spec_matcher.rb +22 -29
- data/lib/spec/runner/spec_parser.rb +1 -0
- data/lib/spec/runner/specification.rb +36 -22
- data/lib/spec/translator.rb +87 -0
- data/lib/spec/version.rb +16 -7
- data/spec/spec/callback/callback_container_spec.rb +27 -0
- data/spec/spec/callback/module_spec.rb +37 -0
- data/spec/spec/callback/object_spec.rb +90 -0
- data/spec/spec/callback/object_with_class_callback_spec.rb +19 -0
- data/spec/spec/expectations/differs/default_spec.rb +107 -0
- data/spec/spec/expectations/extensions/object_spec.rb +46 -0
- data/spec/spec/expectations/fail_with_spec.rb +71 -0
- data/spec/spec/expectations/should/should_==_spec.rb +19 -0
- data/spec/spec/expectations/should/should_=~_spec.rb +13 -0
- data/spec/spec/expectations/should/should_be_a_kind_of_spec.rb +21 -0
- data/spec/spec/expectations/should/should_be_an_instance_of_spec.rb +30 -0
- data/spec/spec/expectations/should/should_be_arbitrary_predicate_spec.rb +81 -0
- data/spec/spec/expectations/should/should_be_close_spec.rb +18 -0
- data/spec/spec/expectations/should/should_be_comparison_operator_spec.rb +44 -0
- data/spec/spec/expectations/should/should_be_false_spec.rb +39 -0
- data/spec/spec/expectations/should/should_be_spec.rb +11 -0
- data/spec/spec/expectations/should/should_be_true_spec.rb +27 -0
- data/spec/spec/expectations/should/should_change_spec.rb +184 -0
- data/spec/spec/expectations/should/should_eql_spec.rb +11 -0
- data/spec/spec/expectations/should/should_equal_spec.rb +11 -0
- data/spec/spec/expectations/should/should_have_at_least_spec.rb +53 -0
- data/spec/spec/expectations/should/should_have_at_most_spec.rb +45 -0
- data/spec/spec/expectations/should/should_have_key_spec.rb +21 -0
- data/spec/spec/expectations/should/should_have_spec.rb +64 -0
- data/spec/spec/expectations/should/should_include_spec.rb +59 -0
- data/spec/spec/expectations/should/should_match_spec.rb +25 -0
- data/spec/spec/expectations/should/should_not_==_spec.rb +15 -0
- data/spec/spec/expectations/should/should_not_be_a_kind_of_spec.rb +21 -0
- data/spec/spec/expectations/should/should_not_be_an_instance_of_spec.rb +11 -0
- data/spec/spec/expectations/should/should_not_be_arbitrary_predicate_spec.rb +68 -0
- data/spec/spec/expectations/should/should_not_be_spec.rb +11 -0
- data/spec/spec/expectations/should/should_not_change_spec.rb +24 -0
- data/spec/spec/expectations/should/should_not_eql_spec.rb +11 -0
- data/spec/spec/expectations/should/should_not_equal_spec.rb +11 -0
- data/spec/spec/expectations/should/should_not_have_key_spec.rb +15 -0
- data/spec/spec/expectations/should/should_not_include_spec.rb +58 -0
- data/spec/spec/expectations/should/should_not_match_spec.rb +11 -0
- data/spec/spec/expectations/should/should_not_raise_spec.rb +75 -0
- data/spec/spec/expectations/should/should_not_respond_to_spec.rb +15 -0
- data/spec/spec/expectations/should/should_not_throw_spec.rb +35 -0
- data/spec/spec/expectations/should/should_raise_spec.rb +66 -0
- data/spec/spec/expectations/should/should_respond_to_spec.rb +15 -0
- data/spec/spec/expectations/should/should_satisfy_spec.rb +35 -0
- data/spec/spec/expectations/should/should_throw_spec.rb +27 -0
- data/spec/spec/matchers/be_close_spec.rb +33 -0
- data/spec/spec/matchers/be_spec.rb +182 -0
- data/spec/spec/matchers/change_spec.rb +232 -0
- data/spec/spec/matchers/description_generation_spec.rb +147 -0
- data/spec/spec/matchers/eql_spec.rb +41 -0
- data/spec/spec/matchers/equal_spec.rb +41 -0
- data/spec/spec/matchers/handler_spec.rb +75 -0
- data/spec/spec/matchers/has_spec.rb +37 -0
- data/spec/spec/matchers/have_spec.rb +259 -0
- data/spec/spec/matchers/include_spec.rb +33 -0
- data/spec/spec/matchers/match_spec.rb +37 -0
- data/spec/spec/matchers/matcher_methods_spec.rb +85 -0
- data/spec/spec/matchers/raise_error_spec.rb +147 -0
- data/spec/spec/matchers/respond_to_spec.rb +30 -0
- data/spec/spec/matchers/satisfy_spec.rb +36 -0
- data/spec/spec/matchers/throw_symbol_spec.rb +59 -0
- data/spec/spec/mocks/any_number_of_times_spec.rb +34 -0
- data/spec/spec/mocks/at_least_spec.rb +97 -0
- data/spec/spec/mocks/at_most_spec.rb +97 -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_mock_argument_constraints_spec.rb +74 -0
- data/spec/spec/mocks/mock_ordering_spec.rb +80 -0
- data/spec/spec/mocks/mock_spec.rb +407 -0
- data/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
- data/spec/spec/mocks/null_object_mock_spec.rb +40 -0
- data/spec/spec/mocks/once_counts_spec.rb +56 -0
- data/spec/spec/mocks/options_hash_spec.rb +31 -0
- data/spec/spec/mocks/partial_mock_spec.rb +52 -0
- data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +64 -0
- data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +92 -0
- data/spec/spec/mocks/precise_counts_spec.rb +56 -0
- data/spec/spec/mocks/record_messages_spec.rb +26 -0
- data/spec/spec/mocks/stub_spec.rb +159 -0
- data/spec/spec/mocks/twice_counts_spec.rb +67 -0
- data/spec/spec/runner/command_line_spec.rb +32 -0
- data/spec/spec/runner/context_matching_spec.rb +28 -0
- data/spec/spec/runner/context_runner_spec.rb +100 -0
- data/spec/spec/runner/context_spec.rb +405 -0
- data/spec/spec/runner/drb_command_line_spec.rb +74 -0
- data/spec/spec/runner/execution_context_spec.rb +52 -0
- data/spec/spec/runner/formatter/html_formatter_spec.rb +40 -0
- data/spec/spec/runner/formatter/progress_bar_formatter_dry_run_spec.rb +21 -0
- data/spec/spec/runner/formatter/progress_bar_formatter_failure_dump_spec.rb +36 -0
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +78 -0
- data/spec/spec/runner/formatter/rdoc_formatter_dry_run_spec.rb +18 -0
- data/spec/spec/runner/formatter/rdoc_formatter_spec.rb +41 -0
- data/spec/spec/runner/formatter/specdoc_formatter_dry_run_spec.rb +21 -0
- data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +46 -0
- data/spec/spec/runner/heckle_runner_spec.rb +63 -0
- data/spec/spec/runner/heckler_spec.rb +14 -0
- data/spec/spec/runner/kernel_ext_spec.rb +16 -0
- data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +45 -0
- data/spec/spec/runner/object_ext_spec.rb +11 -0
- data/spec/spec/runner/option_parser_spec.rb +269 -0
- data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +47 -0
- data/spec/spec/runner/reporter_spec.rb +126 -0
- data/spec/spec/runner/spec_matcher_spec.rb +107 -0
- data/spec/spec/runner/spec_name_generation_spec.rb +102 -0
- data/spec/spec/runner/spec_parser_spec.rb +37 -0
- data/spec/spec/runner/specification_class_spec.rb +72 -0
- data/spec/spec/runner/specification_instance_spec.rb +160 -0
- data/spec/spec/runner/specification_should_raise_spec.rb +136 -0
- data/spec/spec/spec_classes.rb +102 -0
- data/spec/spec/translator_spec.rb +79 -0
- data/spec/spec_helper.rb +35 -0
- metadata +141 -9
- data/bin/drbspec +0 -3
- data/lib/spec/expectations/diff.rb +0 -28
- data/lib/spec/expectations/extensions/numeric.rb +0 -19
- data/lib/spec/expectations/extensions/string.rb +0 -22
- data/lib/spec/expectations/message_builder.rb +0 -13
@@ -0,0 +1,33 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
+
|
3
|
+
context "should include(expected)" do
|
4
|
+
specify "should pass if target includes expected" do
|
5
|
+
[1,2,3].should include(3)
|
6
|
+
"abc".should include("a")
|
7
|
+
end
|
8
|
+
|
9
|
+
specify "should fail if target does not include expected" do
|
10
|
+
lambda {
|
11
|
+
[1,2,3].should include(4)
|
12
|
+
}.should fail_with("expected [1, 2, 3] to include 4")
|
13
|
+
lambda {
|
14
|
+
"abc".should include("d")
|
15
|
+
}.should fail_with("expected \"abc\" to include \"d\"")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
context "should_not include(expected)" do
|
20
|
+
specify "should pass if target does not include expected" do
|
21
|
+
[1,2,3].should_not include(4)
|
22
|
+
"abc".should_not include("d")
|
23
|
+
end
|
24
|
+
|
25
|
+
specify "should fail if target includes expected" do
|
26
|
+
lambda {
|
27
|
+
[1,2,3].should_not include(3)
|
28
|
+
}.should fail_with("expected [1, 2, 3] not to include 3")
|
29
|
+
lambda {
|
30
|
+
"abc".should_not include("c")
|
31
|
+
}.should fail_with("expected \"abc\" not to include \"c\"")
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
+
|
3
|
+
context "should match(expected)" do
|
4
|
+
specify "should pass when target (String) matches expected (Regexp)" do
|
5
|
+
"string".should match(/tri/)
|
6
|
+
end
|
7
|
+
|
8
|
+
specify "should fail when target (String) matches expected (Regexp)" do
|
9
|
+
lambda {
|
10
|
+
"string".should match(/rings/)
|
11
|
+
}.should fail
|
12
|
+
end
|
13
|
+
|
14
|
+
specify "should provide message, expected and actual on failure" do
|
15
|
+
matcher = match(/rings/)
|
16
|
+
matcher.matches?("string")
|
17
|
+
matcher.failure_message.should == ["expected \"string\" to match /rings/", /rings/, "string"]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
context "should_not match(expected)" do
|
22
|
+
specify "should pass when target (String) matches expected (Regexp)" do
|
23
|
+
"string".should_not match(/rings/)
|
24
|
+
end
|
25
|
+
|
26
|
+
specify "should fail when target (String) matches expected (Regexp)" do
|
27
|
+
lambda {
|
28
|
+
"string".should_not match(/tri/)
|
29
|
+
}.should fail
|
30
|
+
end
|
31
|
+
|
32
|
+
specify "should provide message, expected and actual on failure" do
|
33
|
+
matcher = match(/tri/)
|
34
|
+
matcher.matches?("string")
|
35
|
+
matcher.negative_failure_message.should == ["expected \"string\" not to match /tri/", /tri/, "string"]
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
+
|
3
|
+
module Spec
|
4
|
+
module Matchers
|
5
|
+
|
6
|
+
context "Spec::Matchers should support" do
|
7
|
+
specify "be_true" do
|
8
|
+
be_true.should be_an_instance_of(Be)
|
9
|
+
end
|
10
|
+
specify "be_false" do
|
11
|
+
be_false.should be_an_instance_of(Be)
|
12
|
+
end
|
13
|
+
specify "be_nil" do
|
14
|
+
be_nil.should be_an_instance_of(Be)
|
15
|
+
end
|
16
|
+
specify "be_arbitrary_predicate" do
|
17
|
+
be_arbitrary_predicate.should be_an_instance_of(Be)
|
18
|
+
end
|
19
|
+
specify "be_close" do
|
20
|
+
be_close(1,2).should be_an_instance_of(BeClose)
|
21
|
+
end
|
22
|
+
specify "change" do
|
23
|
+
change("target", :message).should be_an_instance_of(Change)
|
24
|
+
end
|
25
|
+
specify "eql" do
|
26
|
+
eql(:expected).should be_an_instance_of(Eql)
|
27
|
+
end
|
28
|
+
specify "equal" do
|
29
|
+
equal(:expected).should be_an_instance_of(Equal)
|
30
|
+
end
|
31
|
+
specify "have_x > has_x?" do
|
32
|
+
have_key(:key).should be_an_instance_of(Has)
|
33
|
+
end
|
34
|
+
specify "have" do
|
35
|
+
have(0).should be_an_instance_of(Have)
|
36
|
+
end
|
37
|
+
specify "have_exactly" do
|
38
|
+
have_exactly(0).should be_an_instance_of(Have)
|
39
|
+
end
|
40
|
+
specify "have_at_least" do
|
41
|
+
have_at_least(0).should be_an_instance_of(Have)
|
42
|
+
end
|
43
|
+
specify "have_at_most" do
|
44
|
+
have_at_most(0).should be_an_instance_of(Have)
|
45
|
+
end
|
46
|
+
specify "include" do
|
47
|
+
include(:value).should be_an_instance_of(Include)
|
48
|
+
end
|
49
|
+
specify "match" do
|
50
|
+
match(:value).should be_an_instance_of(Match)
|
51
|
+
end
|
52
|
+
specify "raise_error" do
|
53
|
+
raise_error.should be_an_instance_of(RaiseError)
|
54
|
+
raise_error(NoMethodError).should be_an_instance_of(RaiseError)
|
55
|
+
raise_error(NoMethodError, "message").should be_an_instance_of(RaiseError)
|
56
|
+
end
|
57
|
+
specify "satisfy" do
|
58
|
+
satisfy{}.should be_an_instance_of(Satisfy)
|
59
|
+
end
|
60
|
+
specify "throw_symbol" do
|
61
|
+
throw_symbol.should be_an_instance_of(ThrowSymbol)
|
62
|
+
throw_symbol(:sym).should be_an_instance_of(ThrowSymbol)
|
63
|
+
end
|
64
|
+
specify "respond_to" do
|
65
|
+
respond_to(:sym).should be_an_instance_of(RespondTo)
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
|
70
|
+
context "Spec::Matchers should convert be_xyz to..." do
|
71
|
+
specify "sym passed to Be" do
|
72
|
+
Be.should_receive(:new).with(:be_whatever)
|
73
|
+
be_whatever
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
context "Spec::Matchers should convert have_xyz to..." do
|
78
|
+
specify "string passed to Has" do
|
79
|
+
Has.should_receive(:new).with(:have_whatever)
|
80
|
+
have_whatever
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
85
|
+
end
|
@@ -0,0 +1,147 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
+
|
3
|
+
context "should raise_error" do
|
4
|
+
specify "should pass if anything is raised" do
|
5
|
+
lambda {raise}.should raise_error
|
6
|
+
end
|
7
|
+
|
8
|
+
specify "should fail if nothing is raised" do
|
9
|
+
lambda {
|
10
|
+
lambda {}.should raise_error
|
11
|
+
}.should fail_with("expected Exception but nothing was raised")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
context "should_not raise_error" do
|
16
|
+
specify "should pass if nothing is raised" do
|
17
|
+
lambda {}.should_not raise_error
|
18
|
+
end
|
19
|
+
|
20
|
+
specify "should fail if anything is raised" do
|
21
|
+
lambda {
|
22
|
+
lambda {raise}.should_not raise_error
|
23
|
+
}.should fail_with("expected no Exception, got RuntimeError")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context "should raise_error(NamedError)" do
|
28
|
+
specify "should pass if named error is raised" do
|
29
|
+
lambda { non_existent_method }.should raise_error(NameError)
|
30
|
+
end
|
31
|
+
|
32
|
+
specify "should fail if nothing is raised" do
|
33
|
+
lambda {
|
34
|
+
lambda { }.should raise_error(NameError)
|
35
|
+
}.should fail_with("expected NameError but nothing was raised")
|
36
|
+
end
|
37
|
+
|
38
|
+
specify "should fail if another error is raised" do
|
39
|
+
lambda {
|
40
|
+
lambda { raise }.should raise_error(NameError)
|
41
|
+
}.should fail_with("expected NameError, got RuntimeError")
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
context "should_not raise_error(NamedError)" do
|
46
|
+
specify "should pass if nothing is raised" do
|
47
|
+
lambda { }.should_not raise_error(NameError)
|
48
|
+
end
|
49
|
+
|
50
|
+
specify "should pass if another error is raised" do
|
51
|
+
lambda { raise }.should_not raise_error(NameError)
|
52
|
+
end
|
53
|
+
|
54
|
+
specify "should fail if named error is raised" do
|
55
|
+
lambda {
|
56
|
+
lambda { non_existent_method }.should_not raise_error(NameError)
|
57
|
+
}.should fail_with(/expected no NameError, got #<NameError: undefined/)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
context "should raise_error(NamedError, error_message) with String" do
|
62
|
+
specify "should pass if named error is raised with same message" do
|
63
|
+
lambda { raise "example message" }.should raise_error(RuntimeError, "example message")
|
64
|
+
end
|
65
|
+
|
66
|
+
specify "should fail if nothing is raised" do
|
67
|
+
lambda {
|
68
|
+
lambda {}.should raise_error(RuntimeError, "example message")
|
69
|
+
}.should fail_with("expected RuntimeError with \"example message\" but nothing was raised")
|
70
|
+
end
|
71
|
+
|
72
|
+
specify "should fail if incorrect error is raised" do
|
73
|
+
lambda {
|
74
|
+
lambda { raise }.should raise_error(NameError, "example message")
|
75
|
+
}.should fail_with("expected NameError with \"example message\", got RuntimeError")
|
76
|
+
end
|
77
|
+
|
78
|
+
specify "should fail if correct error is raised with incorrect message" do
|
79
|
+
lambda {
|
80
|
+
lambda { raise RuntimeError.new("not the example message") }.should raise_error(RuntimeError, "example message")
|
81
|
+
}.should fail_with(/expected RuntimeError with \"example message\", got #<RuntimeError: not the example message/)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
context "should_not raise_error(NamedError, error_message) with String" do
|
86
|
+
specify "should pass if nothing is raised" do
|
87
|
+
lambda {}.should_not raise_error(RuntimeError, "example message")
|
88
|
+
end
|
89
|
+
|
90
|
+
specify "should pass if a different error is raised" do
|
91
|
+
lambda { raise }.should_not raise_error(NameError, "example message")
|
92
|
+
end
|
93
|
+
|
94
|
+
specify "should pass if same error is raised with different message" do
|
95
|
+
lambda { raise RuntimeError.new("not the example message") }.should_not raise_error(RuntimeError, "example message")
|
96
|
+
end
|
97
|
+
|
98
|
+
specify "should fail if named error is raised with same message" do
|
99
|
+
lambda {
|
100
|
+
lambda { raise "example message" }.should_not raise_error(RuntimeError, "example message")
|
101
|
+
}.should fail_with("expected no RuntimeError with \"example message\", got #<RuntimeError: example message>")
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
context "should raise_error(NamedError, error_message) with Regexp" do
|
106
|
+
specify "should pass if named error is raised with matching message" do
|
107
|
+
lambda { raise "example message" }.should raise_error(RuntimeError, /ample mess/)
|
108
|
+
end
|
109
|
+
|
110
|
+
specify "should fail if nothing is raised" do
|
111
|
+
lambda {
|
112
|
+
lambda {}.should raise_error(RuntimeError, /ample mess/)
|
113
|
+
}.should fail_with("expected RuntimeError with message matching /ample mess/ but nothing was raised")
|
114
|
+
end
|
115
|
+
|
116
|
+
specify "should fail if incorrect error is raised" do
|
117
|
+
lambda {
|
118
|
+
lambda { raise }.should raise_error(NameError, /ample mess/)
|
119
|
+
}.should fail_with("expected NameError with message matching /ample mess/, got RuntimeError")
|
120
|
+
end
|
121
|
+
|
122
|
+
specify "should fail if correct error is raised with incorrect message" do
|
123
|
+
lambda {
|
124
|
+
lambda { raise RuntimeError.new("not the example message") }.should raise_error(RuntimeError, /less than ample mess/)
|
125
|
+
}.should fail_with("expected RuntimeError with message matching /less than ample mess/, got #<RuntimeError: not the example message>")
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
context "should_not raise_error(NamedError, error_message) with Regexp" do
|
130
|
+
specify "should pass if nothing is raised" do
|
131
|
+
lambda {}.should_not raise_error(RuntimeError, /ample mess/)
|
132
|
+
end
|
133
|
+
|
134
|
+
specify "should pass if a different error is raised" do
|
135
|
+
lambda { raise }.should_not raise_error(NameError, /ample mess/)
|
136
|
+
end
|
137
|
+
|
138
|
+
specify "should pass if same error is raised with non-matching message" do
|
139
|
+
lambda { raise RuntimeError.new("non matching message") }.should_not raise_error(RuntimeError, /ample mess/)
|
140
|
+
end
|
141
|
+
|
142
|
+
specify "should fail if named error is raised with matching message" do
|
143
|
+
lambda {
|
144
|
+
lambda { raise "example message" }.should_not raise_error(RuntimeError, /ample mess/)
|
145
|
+
}.should fail_with("expected no RuntimeError with message matching /ample mess/, got #<RuntimeError: example message>")
|
146
|
+
end
|
147
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
+
|
3
|
+
context "should respond_to(:sym)" do
|
4
|
+
|
5
|
+
specify "should pass if target responds to :sym" do
|
6
|
+
Object.new.should respond_to(:methods)
|
7
|
+
end
|
8
|
+
|
9
|
+
specify "should fail target does not respond to :sym" do
|
10
|
+
lambda {
|
11
|
+
Object.new.should respond_to(:some_method)
|
12
|
+
}.should fail_with("expected target to respond to :some_method")
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
context "should_not respond_to(:sym)" do
|
18
|
+
|
19
|
+
specify "should pass if target does not respond to :sym" do
|
20
|
+
Object.new.should_not respond_to(:some_method)
|
21
|
+
end
|
22
|
+
|
23
|
+
specify "should fail target responds to :sym" do
|
24
|
+
lambda {
|
25
|
+
Object.new.should_not respond_to(:methods)
|
26
|
+
}.should fail_with("expected target not to respond to :methods")
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
+
|
3
|
+
context "should satisfy { block }" do
|
4
|
+
specify "should pass if block returns true" do
|
5
|
+
true.should satisfy { |val| val }
|
6
|
+
true.should satisfy do |val|
|
7
|
+
val
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
specify "should fail if block returns false" do
|
12
|
+
lambda {
|
13
|
+
false.should satisfy { |val| val }
|
14
|
+
}.should fail_with("expected false to satisfy block")
|
15
|
+
lambda do
|
16
|
+
false.should satisfy do |val|
|
17
|
+
val
|
18
|
+
end
|
19
|
+
end.should fail_with("expected false to satisfy block")
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
context "should_not satisfy { block }" do
|
24
|
+
specify "should pass if block returns false" do
|
25
|
+
false.should_not satisfy { |val| val }
|
26
|
+
false.should_not satisfy do |val|
|
27
|
+
val
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
specify "should fail if block returns true" do
|
32
|
+
lambda {
|
33
|
+
true.should_not satisfy { |val| val }
|
34
|
+
}.should fail_with("expected true not to satisfy block")
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
+
|
3
|
+
context "should throw_symbol" do
|
4
|
+
specify "should pass if any Symbol is thrown" do
|
5
|
+
lambda{ throw :sym }.should throw_symbol
|
6
|
+
end
|
7
|
+
|
8
|
+
specify "should fail if no Symbol is thrown" do
|
9
|
+
lambda {
|
10
|
+
lambda { }.should throw_symbol
|
11
|
+
}.should fail_with("expected a Symbol but nothing was thrown")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
context "should_not throw_symbol" do
|
16
|
+
specify "should pass if no Symbol is thrown" do
|
17
|
+
lambda{ }.should_not throw_symbol
|
18
|
+
end
|
19
|
+
|
20
|
+
specify "should fail if any Symbol is thrown" do
|
21
|
+
lambda {
|
22
|
+
lambda { throw :sym }.should_not throw_symbol
|
23
|
+
}.should fail_with("expected no Symbol, got :sym")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context "should throw_symbol(:sym)" do
|
28
|
+
specify "should pass if correct Symbol is thrown" do
|
29
|
+
lambda{ throw :sym }.should throw_symbol(:sym)
|
30
|
+
end
|
31
|
+
|
32
|
+
specify "should fail if no Symbol is thrown" do
|
33
|
+
lambda {
|
34
|
+
lambda { }.should throw_symbol(:sym)
|
35
|
+
}.should fail_with("expected :sym but nothing was thrown")
|
36
|
+
end
|
37
|
+
|
38
|
+
specify "should fail if wrong Symbol is thrown" do
|
39
|
+
lambda {
|
40
|
+
lambda { throw :wrong_sym }.should throw_symbol(:sym)
|
41
|
+
}.should fail_with("expected :sym, got :wrong_sym")
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
context "should_not throw_symbol(:sym)" do
|
46
|
+
specify "should pass if no Symbol is thrown" do
|
47
|
+
lambda { }.should_not throw_symbol(:sym)
|
48
|
+
end
|
49
|
+
|
50
|
+
specify "should pass if other Symbol is thrown" do
|
51
|
+
lambda { throw :wrong_sym }.should_not throw_symbol(:sym)
|
52
|
+
end
|
53
|
+
|
54
|
+
specify "should fail if correct Symbol is thrown" do
|
55
|
+
lambda {
|
56
|
+
lambda{ throw :sym }.should_not throw_symbol(:sym)
|
57
|
+
}.should fail_with("expected :sym not to be thrown")
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
+
|
3
|
+
module Spec
|
4
|
+
module Mocks
|
5
|
+
context "AnyNumberOfTimes" do
|
6
|
+
setup do
|
7
|
+
@mock = Mock.new("test mock", {
|
8
|
+
:auto_verify => false
|
9
|
+
})
|
10
|
+
|
11
|
+
end
|
12
|
+
specify "should pass if any number of times method is called many times" do
|
13
|
+
@mock.should_receive(:random_call).any_number_of_times
|
14
|
+
(1..10).each do
|
15
|
+
@mock.random_call
|
16
|
+
end
|
17
|
+
@mock.__verify
|
18
|
+
|
19
|
+
end
|
20
|
+
specify "should pass if any number of times method is called once" do
|
21
|
+
@mock.should_receive(:random_call).any_number_of_times
|
22
|
+
@mock.random_call
|
23
|
+
@mock.__verify
|
24
|
+
|
25
|
+
end
|
26
|
+
specify "should pass if any number of times method is not called" do
|
27
|
+
@mock.should_receive(:random_call).any_number_of_times
|
28
|
+
@mock.__verify
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|