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,19 @@
|
|
1
|
+
dir = File.dirname(__FILE__)
|
2
|
+
require "#{dir}/../../spec_helper"
|
3
|
+
|
4
|
+
context "An Object with class callback" do
|
5
|
+
specify "should notify the class callback" do
|
6
|
+
klass = Class.new do
|
7
|
+
class << self
|
8
|
+
callback_events :the_callback
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
klass_callback_called = false
|
13
|
+
klass.the_callback {klass_callback_called = true}
|
14
|
+
obj = klass.new
|
15
|
+
obj.send(:notify_class_callbacks, :the_callback)
|
16
|
+
|
17
|
+
klass_callback_called.should == true
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,107 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
|
2
|
+
require File.dirname(__FILE__) + '/../../../../lib/spec/expectations/differs/default'
|
3
|
+
|
4
|
+
module Spec
|
5
|
+
module Fixtures
|
6
|
+
class Animal
|
7
|
+
def initialize(name,species)
|
8
|
+
@name,@species = name,species
|
9
|
+
end
|
10
|
+
|
11
|
+
def inspect
|
12
|
+
<<-EOA
|
13
|
+
<Animal
|
14
|
+
name=#{@name},
|
15
|
+
species=#{@species}
|
16
|
+
>
|
17
|
+
EOA
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
context "Diff" do
|
24
|
+
setup do
|
25
|
+
@differ = Spec::Expectations::Differs::Default.new
|
26
|
+
end
|
27
|
+
|
28
|
+
specify "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="\n\n@@ -1,6 +1,6 @@\n foo\n-bar\n zap\n+bar\n this\n is\n soo\n@@ -9,5 +9,6 @@\n equal\n insert\n a\n+another\n line\n"
|
32
|
+
diff = @differ.diff_as_string(expected, actual)
|
33
|
+
diff.should_eql(expected_diff)
|
34
|
+
end
|
35
|
+
|
36
|
+
specify "should output unified diff message of two arrays" do
|
37
|
+
expected = [ :foo, 'bar', :baz, 'quux', :metasyntactic, 'variable', :delta, 'charlie', :width, 'quite wide' ]
|
38
|
+
actual = [ :foo, 'bar', :baz, 'quux', :metasyntactic, 'variable', :delta, 'tango' , :width, 'very wide' ]
|
39
|
+
|
40
|
+
expected_diff = <<'EOD'
|
41
|
+
|
42
|
+
|
43
|
+
@@ -5,7 +5,7 @@
|
44
|
+
:metasyntactic,
|
45
|
+
"variable",
|
46
|
+
:delta,
|
47
|
+
- "charlie",
|
48
|
+
+ "tango",
|
49
|
+
:width,
|
50
|
+
- "quite wide"]
|
51
|
+
+ "very wide"]
|
52
|
+
EOD
|
53
|
+
|
54
|
+
|
55
|
+
diff = @differ.diff_as_object(expected,actual)
|
56
|
+
diff.should_eql expected_diff
|
57
|
+
end
|
58
|
+
|
59
|
+
specify "should output unified diff message of two objects" do
|
60
|
+
expected = Spec::Fixtures::Animal.new "bob", "giraffe"
|
61
|
+
actual = Spec::Fixtures::Animal.new "bob", "tortoise"
|
62
|
+
|
63
|
+
expected_diff = <<'EOD'
|
64
|
+
|
65
|
+
@@ -1,5 +1,5 @@
|
66
|
+
<Animal
|
67
|
+
name=bob,
|
68
|
+
- species=giraffe
|
69
|
+
+ species=tortoise
|
70
|
+
>
|
71
|
+
EOD
|
72
|
+
|
73
|
+
diff = @differ.diff_as_object(expected,actual)
|
74
|
+
diff.should_eql expected_diff
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
78
|
+
|
79
|
+
|
80
|
+
context "Diff in context format" do
|
81
|
+
setup do
|
82
|
+
@differ = Spec::Expectations::Differs::Default.new(:context)
|
83
|
+
end
|
84
|
+
|
85
|
+
specify "should output unified diff message of two objects" do
|
86
|
+
expected = Spec::Fixtures::Animal.new "bob", "giraffe"
|
87
|
+
actual = Spec::Fixtures::Animal.new "bob", "tortoise"
|
88
|
+
|
89
|
+
expected_diff = <<'EOD'
|
90
|
+
|
91
|
+
***************
|
92
|
+
*** 1,5 ****
|
93
|
+
<Animal
|
94
|
+
name=bob,
|
95
|
+
! species=giraffe
|
96
|
+
>
|
97
|
+
--- 1,5 ----
|
98
|
+
<Animal
|
99
|
+
name=bob,
|
100
|
+
! species=tortoise
|
101
|
+
>
|
102
|
+
EOD
|
103
|
+
|
104
|
+
diff = @differ.diff_as_object(expected,actual)
|
105
|
+
diff.should_eql expected_diff
|
106
|
+
end
|
107
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
|
2
|
+
|
3
|
+
context "Object#should" do
|
4
|
+
setup do
|
5
|
+
@target = "target"
|
6
|
+
@matcher = mock("matcher")
|
7
|
+
@matcher.stub!(:matches?).and_return(true)
|
8
|
+
@matcher.stub!(:failure_message)
|
9
|
+
end
|
10
|
+
|
11
|
+
specify "should accept and interact with a matcher" do
|
12
|
+
@matcher.should_receive(:matches?).with(@target).and_return(true)
|
13
|
+
|
14
|
+
@target.should @matcher
|
15
|
+
end
|
16
|
+
|
17
|
+
specify "should ask for a failure_message when matches? returns false" do
|
18
|
+
@matcher.should_receive(:matches?).with(@target).and_return(false)
|
19
|
+
@matcher.should_receive(:failure_message).and_return("the failure message")
|
20
|
+
lambda {
|
21
|
+
@target.should @matcher
|
22
|
+
}.should_fail_with "the failure message"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context "Object#should_not" do
|
27
|
+
setup do
|
28
|
+
@target = "target"
|
29
|
+
@matcher = mock("matcher")
|
30
|
+
end
|
31
|
+
|
32
|
+
specify "should accept and interact with a matcher" do
|
33
|
+
@matcher.should_receive(:matches?).with(@target).and_return(false)
|
34
|
+
@matcher.stub!(:negative_failure_message)
|
35
|
+
|
36
|
+
@target.should_not @matcher
|
37
|
+
end
|
38
|
+
|
39
|
+
specify "should ask for a negative_failure_message when matches? returns true" do
|
40
|
+
@matcher.should_receive(:matches?).with(@target).and_return(true)
|
41
|
+
@matcher.should_receive(:negative_failure_message).and_return("the negative failure message")
|
42
|
+
lambda {
|
43
|
+
@target.should_not @matcher
|
44
|
+
}.should_fail_with "the negative failure message"
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper.rb'
|
2
|
+
|
3
|
+
context "Spec::Expectations.fail_with with no diff" do
|
4
|
+
setup do
|
5
|
+
@old_differ = Spec::Expectations.differ
|
6
|
+
Spec::Expectations.differ = nil
|
7
|
+
end
|
8
|
+
|
9
|
+
specify "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
|
+
specify "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
|
+
teardown do
|
22
|
+
Spec::Expectations.differ = @old_differ
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context "Spec::Expectations.fail_with with diff" do
|
27
|
+
setup do
|
28
|
+
@old_differ = Spec::Expectations.differ
|
29
|
+
@differ = mock("differ")
|
30
|
+
Spec::Expectations.differ = @differ
|
31
|
+
end
|
32
|
+
|
33
|
+
specify "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
|
+
specify "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
|
+
specify "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
|
+
specify "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
|
+
specify "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
|
+
teardown do
|
69
|
+
Spec::Expectations.differ = @old_differ
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
|
2
|
+
|
3
|
+
require 'spec/expectations/differs/default'
|
4
|
+
|
5
|
+
context "should ==" do
|
6
|
+
|
7
|
+
specify "should pass when objects are ==" do
|
8
|
+
lambda do
|
9
|
+
"apple".should == "apple"
|
10
|
+
end.should_pass
|
11
|
+
end
|
12
|
+
|
13
|
+
specify "should fail when objects are not ==" do
|
14
|
+
lambda do
|
15
|
+
"1".should == 1
|
16
|
+
end.should_fail_with "expected 1, got \"1\" (using ==)"
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
+
|
3
|
+
context "should =~" do
|
4
|
+
specify "should pass when =~ operator returns non-nil" do
|
5
|
+
"foo".should =~ /oo/
|
6
|
+
end
|
7
|
+
|
8
|
+
specify "should fail when =~ operator returns nil" do
|
9
|
+
lambda do
|
10
|
+
"fu".should =~ /oo/
|
11
|
+
end.should_fail_with "expected =~ /oo/, got \"fu\""
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
|
2
|
+
|
3
|
+
context "should_be_a_kind_of" do
|
4
|
+
specify "should fail when target is not specified class" do
|
5
|
+
lambda do
|
6
|
+
5.should_be_a_kind_of(String)
|
7
|
+
end.should_fail_with "expected kind_of?(String) to return true, got false"
|
8
|
+
end
|
9
|
+
|
10
|
+
specify "should pass when target is of specified class" do
|
11
|
+
lambda do
|
12
|
+
5.should_be_a_kind_of(Fixnum)
|
13
|
+
end.should_pass
|
14
|
+
end
|
15
|
+
|
16
|
+
specify "should pass when target is of subclass of specified class" do
|
17
|
+
lambda do
|
18
|
+
5.should_be_a_kind_of(Integer)
|
19
|
+
end.should_pass
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
|
2
|
+
|
3
|
+
context "should_be_an_instance_of" do
|
4
|
+
specify "should fail when target is not specified class (OLD STYLE)" do
|
5
|
+
lambda do
|
6
|
+
5.should_be_an_instance_of(Integer)
|
7
|
+
end.should_fail_with "expected instance_of?(Integer) to return true, got false"
|
8
|
+
end
|
9
|
+
|
10
|
+
specify "should pass when target is specified class (OLD STYLE)" do
|
11
|
+
lambda do
|
12
|
+
5.should_be_an_instance_of(Fixnum)
|
13
|
+
end.should_pass
|
14
|
+
end
|
15
|
+
|
16
|
+
begin
|
17
|
+
specify "should fail when target is not specified class" do
|
18
|
+
lambda do
|
19
|
+
5.should be_instance_of(Integer)
|
20
|
+
end.should_fail_with "expected instance_of?(Integer) to return true, got false"
|
21
|
+
end
|
22
|
+
|
23
|
+
specify "should pass when target is specified class" do
|
24
|
+
lambda do
|
25
|
+
5.should be_instance_of(Fixnum)
|
26
|
+
end.should_pass
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
|
2
|
+
|
3
|
+
module Spec
|
4
|
+
module Expectations
|
5
|
+
module Helper
|
6
|
+
context "should_be_<arbitrary predicate>" do
|
7
|
+
specify "should fail when method returns something other than true false or nil" do
|
8
|
+
mock=HandCodedMock.new(5)
|
9
|
+
lambda do
|
10
|
+
mock.should_be_funny
|
11
|
+
end.should_pass
|
12
|
+
mock.__verify
|
13
|
+
end
|
14
|
+
|
15
|
+
specify "should fail when predicate accepts args and returns false" do
|
16
|
+
mock=HandCodedMock.new(false)
|
17
|
+
lambda do
|
18
|
+
mock.should_be_hungry(1, 2, 3)
|
19
|
+
end.should_fail_with "expected hungry?(1, 2, 3) to return true, got false"
|
20
|
+
mock.__verify
|
21
|
+
end
|
22
|
+
|
23
|
+
specify "should fail when predicate returns false" do
|
24
|
+
mock=HandCodedMock.new(false)
|
25
|
+
lambda do
|
26
|
+
mock.should_be_funny
|
27
|
+
end.should_fail
|
28
|
+
end
|
29
|
+
|
30
|
+
specify "should fail when predicate returns nil" do
|
31
|
+
mock=HandCodedMock.new(nil)
|
32
|
+
lambda do
|
33
|
+
mock.should_be_funny
|
34
|
+
end.should_fail
|
35
|
+
mock.__verify
|
36
|
+
end
|
37
|
+
|
38
|
+
specify "should pass when predicate accepts args and returns true" do
|
39
|
+
mock=HandCodedMock.new(true)
|
40
|
+
lambda do
|
41
|
+
mock.should_be_hungry(1, 2, 3)
|
42
|
+
end.should_pass
|
43
|
+
mock.__verify
|
44
|
+
end
|
45
|
+
|
46
|
+
specify "should pass when predicate returns true" do
|
47
|
+
mock=HandCodedMock.new(true)
|
48
|
+
lambda do
|
49
|
+
mock.should_be_funny
|
50
|
+
end.should_pass
|
51
|
+
mock.__verify
|
52
|
+
end
|
53
|
+
|
54
|
+
specify "should raise when target does not respond to predicate" do
|
55
|
+
lambda do
|
56
|
+
5.should_be_funny
|
57
|
+
end.should_raise(NameError)
|
58
|
+
end
|
59
|
+
|
60
|
+
specify "should support multi word predicates with should" do
|
61
|
+
lambda do
|
62
|
+
HandCodedMock.new(true).should_multi_word_predicate
|
63
|
+
end.should_pass
|
64
|
+
end
|
65
|
+
|
66
|
+
specify "should support multi word predicates with should be" do
|
67
|
+
lambda do
|
68
|
+
HandCodedMock.new(true).should_be_multi_word_predicate
|
69
|
+
end.should_pass
|
70
|
+
end
|
71
|
+
|
72
|
+
specify "should support present tense (i.e. t.should_exist evaluates t.exists?)" do
|
73
|
+
mock=HandCodedMock.new(true)
|
74
|
+
lambda do
|
75
|
+
mock.should_exist
|
76
|
+
end.should_pass
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
|
2
|
+
|
3
|
+
context "should_be_close" do
|
4
|
+
specify "should not raise when values are within bounds" do
|
5
|
+
3.5.should_be_close(3.5, 0.5)
|
6
|
+
3.5.should_be_close(3.1, 0.5)
|
7
|
+
3.5.should_be_close(3.01, 0.5)
|
8
|
+
3.5.should_be_close(3.9, 0.5)
|
9
|
+
3.5.should_be_close(3.99, 0.5)
|
10
|
+
end
|
11
|
+
|
12
|
+
specify "should raise when values are outside bounds" do
|
13
|
+
lambda { 3.5.should_be_close(3.0, 0.5) }.should_fail_with "expected 3.0 +/- (<0.5), got 3.5"
|
14
|
+
lambda { 3.5.should_be_close(2.0, 0.5) }.should_fail
|
15
|
+
lambda { 3.5.should_be_close(3.0, 0.5) }.should_fail
|
16
|
+
lambda { 3.5.should_be_close(4.0, 0.5) }.should_fail
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
+
|
3
|
+
context "should_be <" do
|
4
|
+
specify "should pass when < operator returns true" do
|
5
|
+
3.should_be < 4
|
6
|
+
end
|
7
|
+
|
8
|
+
specify "should fail when < operator returns false" do
|
9
|
+
lambda { 3.should_be < 3 }.should_fail_with "expected < 3, got 3"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
context "should_be <=" do
|
14
|
+
specify "should pass when <= operator returns true" do
|
15
|
+
3.should_be <= 4
|
16
|
+
4.should_be <= 4
|
17
|
+
end
|
18
|
+
|
19
|
+
specify "should fail when <= operator returns false" do
|
20
|
+
lambda { 3.should_be <= 2 }.should_fail
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
context "should_be >=" do
|
25
|
+
specify "should pass when >= operator returns true" do
|
26
|
+
4.should_be >= 4
|
27
|
+
5.should_be >= 4
|
28
|
+
end
|
29
|
+
|
30
|
+
specify "should fail when >= operator returns false" do
|
31
|
+
lambda { 3.should_be >= 4 }.should_fail
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
context "should_be >" do
|
36
|
+
specify "should pass when > operator returns true" do
|
37
|
+
5.should_be > 4
|
38
|
+
end
|
39
|
+
|
40
|
+
specify "should fail when > operator returns false" do
|
41
|
+
lambda { 3.should_be > 4 }.should_fail
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|