rspec-expectations 2.11.3 → 3.11.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.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +0 -0
- data/.document +1 -1
- data/.yardopts +1 -1
- data/Changelog.md +1026 -21
- data/{License.txt → LICENSE.md} +5 -3
- data/README.md +174 -78
- data/lib/rspec/expectations/block_snippet_extractor.rb +253 -0
- data/lib/rspec/expectations/configuration.rb +230 -0
- data/lib/rspec/expectations/expectation_target.rb +130 -55
- data/lib/rspec/expectations/fail_with.rb +17 -33
- data/lib/rspec/expectations/failure_aggregator.rb +212 -0
- data/lib/rspec/expectations/handler.rb +163 -29
- data/lib/rspec/expectations/minitest_integration.rb +58 -0
- data/lib/rspec/expectations/syntax.rb +68 -54
- data/lib/rspec/expectations/version.rb +1 -1
- data/lib/rspec/expectations.rb +59 -24
- data/lib/rspec/matchers/aliased_matcher.rb +116 -0
- data/lib/rspec/matchers/built_in/all.rb +86 -0
- data/lib/rspec/matchers/built_in/base_matcher.rb +150 -20
- data/lib/rspec/matchers/built_in/be.rb +115 -109
- data/lib/rspec/matchers/built_in/be_between.rb +77 -0
- data/lib/rspec/matchers/built_in/be_instance_of.rb +16 -1
- data/lib/rspec/matchers/built_in/be_kind_of.rb +10 -1
- data/lib/rspec/matchers/built_in/be_within.rb +43 -17
- data/lib/rspec/matchers/built_in/change.rb +392 -75
- data/lib/rspec/matchers/built_in/compound.rb +290 -0
- data/lib/rspec/matchers/built_in/contain_exactly.rb +302 -0
- data/lib/rspec/matchers/built_in/count_expectation.rb +169 -0
- data/lib/rspec/matchers/built_in/cover.rb +3 -0
- data/lib/rspec/matchers/built_in/eq.rb +26 -8
- data/lib/rspec/matchers/built_in/eql.rb +19 -8
- data/lib/rspec/matchers/built_in/equal.rb +56 -19
- data/lib/rspec/matchers/built_in/exist.rb +74 -10
- data/lib/rspec/matchers/built_in/has.rb +141 -22
- data/lib/rspec/matchers/built_in/have_attributes.rb +114 -0
- data/lib/rspec/matchers/built_in/include.rb +175 -20
- data/lib/rspec/matchers/built_in/match.rb +95 -1
- data/lib/rspec/matchers/built_in/operators.rb +128 -0
- data/lib/rspec/matchers/built_in/output.rb +207 -0
- data/lib/rspec/matchers/built_in/raise_error.rb +212 -38
- data/lib/rspec/matchers/built_in/respond_to.rb +155 -29
- data/lib/rspec/matchers/built_in/satisfy.rb +39 -9
- data/lib/rspec/matchers/built_in/start_or_end_with.rb +94 -0
- data/lib/rspec/matchers/built_in/throw_symbol.rb +58 -14
- data/lib/rspec/matchers/built_in/yield.rb +252 -98
- data/lib/rspec/matchers/built_in.rb +47 -33
- data/lib/rspec/matchers/composable.rb +171 -0
- data/lib/rspec/matchers/dsl.rb +530 -10
- data/lib/rspec/matchers/english_phrasing.rb +58 -0
- data/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +82 -0
- data/lib/rspec/matchers/fail_matchers.rb +42 -0
- data/lib/rspec/matchers/generated_descriptions.rb +15 -10
- data/lib/rspec/matchers/matcher_delegator.rb +35 -0
- data/lib/rspec/matchers/matcher_protocol.rb +105 -0
- data/lib/rspec/matchers.rb +604 -252
- data.tar.gz.sig +0 -0
- metadata +178 -278
- metadata.gz.sig +0 -0
- data/features/README.md +0 -49
- data/features/Upgrade.md +0 -53
- data/features/built_in_matchers/README.md +0 -90
- data/features/built_in_matchers/be.feature +0 -173
- data/features/built_in_matchers/be_within.feature +0 -46
- data/features/built_in_matchers/cover.feature +0 -45
- data/features/built_in_matchers/end_with.feature +0 -46
- data/features/built_in_matchers/equality.feature +0 -145
- data/features/built_in_matchers/exist.feature +0 -43
- data/features/built_in_matchers/expect_change.feature +0 -59
- data/features/built_in_matchers/expect_error.feature +0 -138
- data/features/built_in_matchers/have.feature +0 -103
- data/features/built_in_matchers/include.feature +0 -121
- data/features/built_in_matchers/match.feature +0 -50
- data/features/built_in_matchers/operators.feature +0 -221
- data/features/built_in_matchers/predicates.feature +0 -128
- data/features/built_in_matchers/respond_to.feature +0 -78
- data/features/built_in_matchers/satisfy.feature +0 -31
- data/features/built_in_matchers/start_with.feature +0 -46
- data/features/built_in_matchers/throw_symbol.feature +0 -85
- data/features/built_in_matchers/types.feature +0 -114
- data/features/built_in_matchers/yield.feature +0 -146
- data/features/custom_matchers/access_running_example.feature +0 -53
- data/features/custom_matchers/define_diffable_matcher.feature +0 -27
- data/features/custom_matchers/define_matcher.feature +0 -340
- data/features/custom_matchers/define_matcher_outside_rspec.feature +0 -38
- data/features/custom_matchers/define_matcher_with_fluent_interface.feature +0 -24
- data/features/customized_message.feature +0 -22
- data/features/diffing.feature +0 -85
- data/features/implicit_docstrings.feature +0 -52
- data/features/step_definitions/additional_cli_steps.rb +0 -22
- data/features/support/env.rb +0 -5
- data/features/syntax_configuration.feature +0 -68
- data/features/test_frameworks/test_unit.feature +0 -46
- data/lib/rspec/expectations/deprecation.rb +0 -38
- data/lib/rspec/expectations/differ.rb +0 -81
- data/lib/rspec/expectations/errors.rb +0 -9
- data/lib/rspec/expectations/extensions/array.rb +0 -9
- data/lib/rspec/expectations/extensions/object.rb +0 -39
- data/lib/rspec/expectations/extensions.rb +0 -2
- data/lib/rspec/matchers/be_close.rb +0 -9
- data/lib/rspec/matchers/built_in/have.rb +0 -108
- data/lib/rspec/matchers/built_in/match_array.rb +0 -45
- data/lib/rspec/matchers/built_in/start_and_end_with.rb +0 -48
- data/lib/rspec/matchers/compatibility.rb +0 -14
- data/lib/rspec/matchers/configuration.rb +0 -66
- data/lib/rspec/matchers/extensions/instance_eval_with_args.rb +0 -39
- data/lib/rspec/matchers/matcher.rb +0 -299
- data/lib/rspec/matchers/method_missing.rb +0 -12
- data/lib/rspec/matchers/operator_matcher.rb +0 -84
- data/lib/rspec/matchers/pretty.rb +0 -60
- data/lib/rspec-expectations.rb +0 -1
- data/spec/rspec/expectations/differ_spec.rb +0 -153
- data/spec/rspec/expectations/expectation_target_spec.rb +0 -65
- data/spec/rspec/expectations/extensions/kernel_spec.rb +0 -67
- data/spec/rspec/expectations/fail_with_spec.rb +0 -70
- data/spec/rspec/expectations/handler_spec.rb +0 -206
- data/spec/rspec/matchers/base_matcher_spec.rb +0 -60
- data/spec/rspec/matchers/be_close_spec.rb +0 -22
- data/spec/rspec/matchers/be_instance_of_spec.rb +0 -40
- data/spec/rspec/matchers/be_kind_of_spec.rb +0 -37
- data/spec/rspec/matchers/be_spec.rb +0 -452
- data/spec/rspec/matchers/be_within_spec.rb +0 -80
- data/spec/rspec/matchers/change_spec.rb +0 -528
- data/spec/rspec/matchers/configuration_spec.rb +0 -202
- data/spec/rspec/matchers/cover_spec.rb +0 -69
- data/spec/rspec/matchers/description_generation_spec.rb +0 -176
- data/spec/rspec/matchers/dsl_spec.rb +0 -57
- data/spec/rspec/matchers/eq_spec.rb +0 -54
- data/spec/rspec/matchers/eql_spec.rb +0 -41
- data/spec/rspec/matchers/equal_spec.rb +0 -60
- data/spec/rspec/matchers/exist_spec.rb +0 -110
- data/spec/rspec/matchers/has_spec.rb +0 -118
- data/spec/rspec/matchers/have_spec.rb +0 -461
- data/spec/rspec/matchers/include_spec.rb +0 -367
- data/spec/rspec/matchers/match_array_spec.rb +0 -124
- data/spec/rspec/matchers/match_spec.rb +0 -61
- data/spec/rspec/matchers/matcher_spec.rb +0 -434
- data/spec/rspec/matchers/matchers_spec.rb +0 -31
- data/spec/rspec/matchers/method_missing_spec.rb +0 -24
- data/spec/rspec/matchers/operator_matcher_spec.rb +0 -221
- data/spec/rspec/matchers/raise_error_spec.rb +0 -344
- data/spec/rspec/matchers/respond_to_spec.rb +0 -295
- data/spec/rspec/matchers/satisfy_spec.rb +0 -44
- data/spec/rspec/matchers/start_with_end_with_spec.rb +0 -182
- data/spec/rspec/matchers/throw_symbol_spec.rb +0 -116
- data/spec/rspec/matchers/yield_spec.rb +0 -402
- data/spec/spec_helper.rb +0 -27
- data/spec/support/classes.rb +0 -56
- data/spec/support/in_sub_process.rb +0 -31
- data/spec/support/matchers.rb +0 -22
- data/spec/support/ruby_version.rb +0 -10
- data/spec/support/shared_examples.rb +0 -13
@@ -1,67 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
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_for_should)
|
9
|
-
end
|
10
|
-
|
11
|
-
it "accepts and interacts with a matcher" do
|
12
|
-
@matcher.should_receive(:matches?).with(@target).and_return(true)
|
13
|
-
@target.should @matcher
|
14
|
-
end
|
15
|
-
|
16
|
-
it "asks for a failure_message_for_should when matches? returns false" do
|
17
|
-
@matcher.should_receive(:matches?).with(@target).and_return(false)
|
18
|
-
@matcher.should_receive(:failure_message_for_should).and_return("the failure message")
|
19
|
-
lambda {
|
20
|
-
@target.should @matcher
|
21
|
-
}.should fail_with("the failure message")
|
22
|
-
end
|
23
|
-
|
24
|
-
context "on interpretters that have BasicObject", :if => defined?(BasicObject) do
|
25
|
-
let(:proxy_class) do
|
26
|
-
Class.new(BasicObject) do
|
27
|
-
def initialize(target)
|
28
|
-
@target = target
|
29
|
-
end
|
30
|
-
|
31
|
-
def proxied?
|
32
|
-
true
|
33
|
-
end
|
34
|
-
|
35
|
-
def method_missing(name, *args)
|
36
|
-
@target.send(name, *args)
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
it 'works properly on BasicObject-subclassed proxy objects' do
|
42
|
-
proxy_class.new(Object.new).should be_proxied
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
describe Object, "#should_not" do
|
48
|
-
before(:each) do
|
49
|
-
@target = "target"
|
50
|
-
@matcher = mock("matcher")
|
51
|
-
end
|
52
|
-
|
53
|
-
it "accepts and interacts with a matcher" do
|
54
|
-
@matcher.should_receive(:matches?).with(@target).and_return(false)
|
55
|
-
@matcher.stub!(:failure_message_for_should_not)
|
56
|
-
|
57
|
-
@target.should_not @matcher
|
58
|
-
end
|
59
|
-
|
60
|
-
it "asks for a failure_message_for_should_not when matches? returns true" do
|
61
|
-
@matcher.should_receive(:matches?).with(@target).and_return(true)
|
62
|
-
@matcher.should_receive(:failure_message_for_should_not).and_return("the failure message for should not")
|
63
|
-
lambda {
|
64
|
-
@target.should_not @matcher
|
65
|
-
}.should fail_with("the failure message for should not")
|
66
|
-
end
|
67
|
-
end
|
@@ -1,70 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe RSpec::Expectations, "#fail_with with diff" do
|
4
|
-
let(:differ) { double("differ") }
|
5
|
-
|
6
|
-
before(:each) do
|
7
|
-
RSpec::Expectations.stub(:differ) { differ }
|
8
|
-
end
|
9
|
-
|
10
|
-
it "calls differ if expected/actual are not strings (or numbers or procs)" do
|
11
|
-
differ.should_receive(:diff_as_object).and_return("diff")
|
12
|
-
lambda {
|
13
|
-
RSpec::Expectations.fail_with "the message", Object.new, Object.new
|
14
|
-
}.should fail_with("the message\nDiff:diff")
|
15
|
-
end
|
16
|
-
|
17
|
-
context "with two strings" do
|
18
|
-
context "and actual is multiline" do
|
19
|
-
it "calls differ" do
|
20
|
-
differ.should_receive(:diff_as_string).and_return("diff")
|
21
|
-
lambda {
|
22
|
-
RSpec::Expectations.fail_with "the message", "expected\nthis", "actual"
|
23
|
-
}.should fail_with("the message\nDiff:diff")
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
context "and expected is multiline" do
|
28
|
-
it "calls differ" do
|
29
|
-
differ.should_receive(:diff_as_string).and_return("diff")
|
30
|
-
lambda {
|
31
|
-
RSpec::Expectations.fail_with "the message", "expected", "actual\nthat"
|
32
|
-
}.should fail_with("the message\nDiff:diff")
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
context "and both are single line strings" do
|
37
|
-
it "does not call differ" do
|
38
|
-
differ.should_not_receive(:diff_as_string)
|
39
|
-
lambda {
|
40
|
-
RSpec::Expectations.fail_with("the message", "expected", "actual")
|
41
|
-
}.should fail_with("the message")
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
it "does not call differ if no expected/actual" do
|
47
|
-
lambda {
|
48
|
-
RSpec::Expectations.fail_with "the message"
|
49
|
-
}.should fail_with("the message")
|
50
|
-
end
|
51
|
-
|
52
|
-
it "does not call differ expected is Numeric" do
|
53
|
-
lambda {
|
54
|
-
RSpec::Expectations.fail_with "the message", 1, "1"
|
55
|
-
}.should fail_with("the message")
|
56
|
-
end
|
57
|
-
|
58
|
-
it "does not call differ when actual is Numeric" do
|
59
|
-
lambda {
|
60
|
-
RSpec::Expectations.fail_with "the message", "1", 1
|
61
|
-
}.should fail_with("the message")
|
62
|
-
end
|
63
|
-
|
64
|
-
it "does not call differ if expected or actual are procs" do
|
65
|
-
lambda {
|
66
|
-
RSpec::Expectations.fail_with "the message", lambda {}, lambda {}
|
67
|
-
}.should fail_with("the message")
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
@@ -1,206 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module ExampleExpectations
|
4
|
-
|
5
|
-
class ArbitraryMatcher
|
6
|
-
def initialize(*args, &block)
|
7
|
-
if args.last.is_a? Hash
|
8
|
-
@expected = args.last[:expected]
|
9
|
-
end
|
10
|
-
@expected = block.call if block
|
11
|
-
@block = block
|
12
|
-
end
|
13
|
-
|
14
|
-
def matches?(target)
|
15
|
-
@target = target
|
16
|
-
return @expected == target
|
17
|
-
end
|
18
|
-
|
19
|
-
def with(new_value)
|
20
|
-
@expected = new_value
|
21
|
-
self
|
22
|
-
end
|
23
|
-
|
24
|
-
def failure_message
|
25
|
-
"expected #{@expected}, got #{@target}"
|
26
|
-
end
|
27
|
-
|
28
|
-
def negative_failure_message
|
29
|
-
"expected not #{@expected}, got #{@target}"
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
class PositiveOnlyMatcher < ArbitraryMatcher
|
34
|
-
undef negative_failure_message rescue nil
|
35
|
-
end
|
36
|
-
|
37
|
-
def arbitrary_matcher(*args, &block)
|
38
|
-
ArbitraryMatcher.new(*args, &block)
|
39
|
-
end
|
40
|
-
|
41
|
-
def positive_only_matcher(*args, &block)
|
42
|
-
PositiveOnlyMatcher.new(*args, &block)
|
43
|
-
end
|
44
|
-
|
45
|
-
end
|
46
|
-
|
47
|
-
module RSpec
|
48
|
-
module Expectations
|
49
|
-
describe PositiveExpectationHandler do
|
50
|
-
describe "#handle_matcher" do
|
51
|
-
it "asks the matcher if it matches" do
|
52
|
-
matcher = mock("matcher")
|
53
|
-
actual = Object.new
|
54
|
-
matcher.should_receive(:matches?).with(actual).and_return(true)
|
55
|
-
RSpec::Expectations::PositiveExpectationHandler.handle_matcher(actual, matcher)
|
56
|
-
end
|
57
|
-
|
58
|
-
it "returns the match value" do
|
59
|
-
matcher = mock("matcher")
|
60
|
-
actual = Object.new
|
61
|
-
matcher.should_receive(:matches?).with(actual).and_return(:this_value)
|
62
|
-
RSpec::Expectations::PositiveExpectationHandler.handle_matcher(actual, matcher).should == :this_value
|
63
|
-
end
|
64
|
-
|
65
|
-
it "calls failure_message_for_should if the matcher implements it" do
|
66
|
-
matcher = mock("matcher", :failure_message_for_should => "message", :matches? => false)
|
67
|
-
actual = Object.new
|
68
|
-
|
69
|
-
::RSpec::Expectations.should_receive(:fail_with).with("message")
|
70
|
-
|
71
|
-
RSpec::Expectations::PositiveExpectationHandler.handle_matcher(actual, matcher)
|
72
|
-
end
|
73
|
-
|
74
|
-
it "calls fail if matcher.diffable?" do
|
75
|
-
matcher = mock("matcher",
|
76
|
-
:diffable? => true,
|
77
|
-
:failure_message_for_should => "message",
|
78
|
-
:matches? => false,
|
79
|
-
:expected => 1,
|
80
|
-
:actual => 2
|
81
|
-
)
|
82
|
-
actual = Object.new
|
83
|
-
|
84
|
-
::RSpec::Expectations.should_receive(:fail_with).with("message", 1, 2)
|
85
|
-
|
86
|
-
RSpec::Expectations::PositiveExpectationHandler.handle_matcher(actual, matcher)
|
87
|
-
end
|
88
|
-
|
89
|
-
it "calls failure_message if the matcher does not implement failure_message_for_should" do
|
90
|
-
matcher = mock("matcher", :failure_message => "message", :matches? => false)
|
91
|
-
actual = Object.new
|
92
|
-
|
93
|
-
::RSpec::Expectations.should_receive(:fail_with).with("message")
|
94
|
-
|
95
|
-
RSpec::Expectations::PositiveExpectationHandler.handle_matcher(actual, matcher)
|
96
|
-
|
97
|
-
end
|
98
|
-
|
99
|
-
it "appends the :or message in the options hash passed to should" do
|
100
|
-
matcher = mock("matcher", :failure_message_for_should => "message", :matches? => false)
|
101
|
-
actual = Object.new
|
102
|
-
|
103
|
-
::RSpec::Expectations.should_receive(:fail_with).with("custom")
|
104
|
-
|
105
|
-
RSpec::Expectations::PositiveExpectationHandler.handle_matcher(actual, matcher, "custom")
|
106
|
-
end
|
107
|
-
end
|
108
|
-
end
|
109
|
-
|
110
|
-
describe NegativeExpectationHandler do
|
111
|
-
describe "#handle_matcher" do
|
112
|
-
it "asks the matcher if it doesn't match when the matcher responds to #does_not_match?" do
|
113
|
-
matcher = mock("matcher", :does_not_match? => true, :negative_failure_message => nil)
|
114
|
-
actual = Object.new
|
115
|
-
matcher.should_receive(:does_not_match?).with(actual).and_return(true)
|
116
|
-
RSpec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher)
|
117
|
-
end
|
118
|
-
|
119
|
-
it "asks the matcher if it matches when the matcher doesn't respond to #does_not_match?" do
|
120
|
-
matcher = mock("matcher")
|
121
|
-
actual = Object.new
|
122
|
-
matcher.stub!(:negative_failure_message)
|
123
|
-
matcher.should_receive(:matches?).with(actual).and_return(false)
|
124
|
-
RSpec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher)
|
125
|
-
end
|
126
|
-
|
127
|
-
it "returns the match value" do
|
128
|
-
matcher = mock("matcher")
|
129
|
-
actual = Object.new
|
130
|
-
matcher.should_receive(:matches?).with(actual).and_return(false)
|
131
|
-
matcher.stub!(:negative_failure_message).and_return("ignore")
|
132
|
-
RSpec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher).should be_false
|
133
|
-
end
|
134
|
-
|
135
|
-
|
136
|
-
it "calls failure_message_for_should_not if the matcher implements it" do
|
137
|
-
matcher = mock("matcher", :failure_message_for_should_not => "message", :matches? => true)
|
138
|
-
actual = Object.new
|
139
|
-
|
140
|
-
::RSpec::Expectations.should_receive(:fail_with).with("message")
|
141
|
-
|
142
|
-
RSpec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher)
|
143
|
-
|
144
|
-
end
|
145
|
-
|
146
|
-
it "calls negative_failure_message if the matcher does not implement failure_message_for_should_not" do
|
147
|
-
matcher = mock("matcher", :negative_failure_message => "message", :matches? => true)
|
148
|
-
actual = Object.new
|
149
|
-
|
150
|
-
::RSpec::Expectations.should_receive(:fail_with).with("message")
|
151
|
-
|
152
|
-
RSpec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher)
|
153
|
-
|
154
|
-
end
|
155
|
-
|
156
|
-
|
157
|
-
it "calls fail if matcher.diffable?" do
|
158
|
-
matcher = mock("matcher",
|
159
|
-
:diffable? => true,
|
160
|
-
:failure_message_for_should_not => "message",
|
161
|
-
:matches? => true,
|
162
|
-
:expected => 1,
|
163
|
-
:actual => 2
|
164
|
-
)
|
165
|
-
actual = Object.new
|
166
|
-
|
167
|
-
::RSpec::Expectations.should_receive(:fail_with).with("message", 1, 2)
|
168
|
-
|
169
|
-
RSpec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher)
|
170
|
-
end
|
171
|
-
|
172
|
-
it "appends the :or message in the options hash passed to should" do
|
173
|
-
matcher = mock("matcher", :failure_message_for_should_not => "message", :matches? => true)
|
174
|
-
actual = Object.new
|
175
|
-
|
176
|
-
::RSpec::Expectations.should_receive(:fail_with).with("custom")
|
177
|
-
|
178
|
-
RSpec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher, "custom")
|
179
|
-
end
|
180
|
-
|
181
|
-
end
|
182
|
-
end
|
183
|
-
|
184
|
-
describe PositiveExpectationHandler do
|
185
|
-
include ExampleExpectations
|
186
|
-
|
187
|
-
it "handles submitted args" do
|
188
|
-
5.should arbitrary_matcher(:expected => 5)
|
189
|
-
5.should arbitrary_matcher(:expected => "wrong").with(5)
|
190
|
-
lambda { 5.should arbitrary_matcher(:expected => 4) }.should fail_with("expected 4, got 5")
|
191
|
-
lambda { 5.should arbitrary_matcher(:expected => 5).with(4) }.should fail_with("expected 4, got 5")
|
192
|
-
5.should_not arbitrary_matcher(:expected => 4)
|
193
|
-
5.should_not arbitrary_matcher(:expected => 5).with(4)
|
194
|
-
lambda { 5.should_not arbitrary_matcher(:expected => 5) }.should fail_with("expected not 5, got 5")
|
195
|
-
lambda { 5.should_not arbitrary_matcher(:expected => 4).with(5) }.should fail_with("expected not 5, got 5")
|
196
|
-
end
|
197
|
-
|
198
|
-
it "handles the submitted block" do
|
199
|
-
5.should arbitrary_matcher { 5 }
|
200
|
-
5.should arbitrary_matcher(:expected => 4) { 5 }
|
201
|
-
5.should arbitrary_matcher(:expected => 4).with(5) { 3 }
|
202
|
-
end
|
203
|
-
|
204
|
-
end
|
205
|
-
end
|
206
|
-
end
|
@@ -1,60 +0,0 @@
|
|
1
|
-
module RSpec::Matchers::BuiltIn
|
2
|
-
describe BaseMatcher do
|
3
|
-
describe "#match_unless_raises" do
|
4
|
-
let(:matcher) do
|
5
|
-
Class.new(BaseMatcher).new
|
6
|
-
end
|
7
|
-
|
8
|
-
it "returns true if there are no errors" do
|
9
|
-
matcher.match_unless_raises {}.should be_true
|
10
|
-
end
|
11
|
-
|
12
|
-
it "returns false if there is an error" do
|
13
|
-
matcher.match_unless_raises { raise }.should be_false
|
14
|
-
end
|
15
|
-
|
16
|
-
it "returns false if the only submitted error is raised" do
|
17
|
-
matcher.match_unless_raises(RuntimeError){ raise "foo" }.should be_false
|
18
|
-
end
|
19
|
-
|
20
|
-
it "returns false if any of several errors submitted is raised" do
|
21
|
-
matcher.match_unless_raises(RuntimeError, ArgumentError, NameError) { raise "foo" }.should be_false
|
22
|
-
matcher.match_unless_raises(RuntimeError, ArgumentError, NameError) { raise ArgumentError.new('') }.should be_false
|
23
|
-
matcher.match_unless_raises(RuntimeError, ArgumentError, NameError) { raise NameError.new('') }.should be_false
|
24
|
-
end
|
25
|
-
|
26
|
-
it "re-raises any error other than one of those specified" do
|
27
|
-
expect do
|
28
|
-
matcher.match_unless_raises(ArgumentError){ raise "foo" }
|
29
|
-
end.to raise_error
|
30
|
-
end
|
31
|
-
|
32
|
-
it "stores the rescued exception for use in messages" do
|
33
|
-
matcher.match_unless_raises(RuntimeError){ raise "foo" }
|
34
|
-
matcher.rescued_exception.should be_a(RuntimeError)
|
35
|
-
matcher.rescued_exception.message.should eq("foo")
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
39
|
-
|
40
|
-
describe "#==" do
|
41
|
-
it "responds the same way as matches?" do
|
42
|
-
matcher = Class.new(BaseMatcher) do
|
43
|
-
def initialize(expected)
|
44
|
-
@expected = expected
|
45
|
-
end
|
46
|
-
|
47
|
-
def matches?(actual)
|
48
|
-
(@actual = actual) == @expected
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
matcher.new(3).matches?(3).should be_true
|
53
|
-
matcher.new(3).should eq(3)
|
54
|
-
|
55
|
-
matcher.new(3).matches?(4).should be_false
|
56
|
-
matcher.new(3).should_not eq(4)
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module RSpec
|
4
|
-
module Matchers
|
5
|
-
describe "[actual.should] be_close(expected, delta)" do
|
6
|
-
before(:each) do
|
7
|
-
RSpec.stub(:warn)
|
8
|
-
end
|
9
|
-
|
10
|
-
it "delegates to be_within(delta).of(expected)" do
|
11
|
-
should_receive(:be_within).with(0.5).and_return( be_within_matcher = stub )
|
12
|
-
be_within_matcher.should_receive(:of).with(3.0)
|
13
|
-
be_close(3.0, 0.5)
|
14
|
-
end
|
15
|
-
|
16
|
-
it "prints a deprecation warning" do
|
17
|
-
RSpec.should_receive(:warn).with(/please use be_within.*instead/)
|
18
|
-
be_close(3.0, 0.5)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,40 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module RSpec
|
4
|
-
module Matchers
|
5
|
-
[:be_an_instance_of, :be_instance_of].each do |method|
|
6
|
-
describe "actual.should #{method}(expected)" do
|
7
|
-
it_behaves_like "an RSpec matcher", :valid_value => 5, :invalid_value => "a" do
|
8
|
-
let(:matcher) { send(method, Fixnum) }
|
9
|
-
end
|
10
|
-
|
11
|
-
it "passes if actual is instance of expected class" do
|
12
|
-
5.should send(method, Fixnum)
|
13
|
-
end
|
14
|
-
|
15
|
-
it "fails if actual is instance of subclass of expected class" do
|
16
|
-
lambda { 5.should send(method, Numeric) }.should fail_with(%Q{expected 5 to be an instance of Numeric})
|
17
|
-
end
|
18
|
-
|
19
|
-
it "fails with failure message for should unless actual is instance of expected class" do
|
20
|
-
lambda { "foo".should send(method, Array) }.should fail_with(%Q{expected "foo" to be an instance of Array})
|
21
|
-
end
|
22
|
-
|
23
|
-
it "provides a description" do
|
24
|
-
matcher = be_an_instance_of(Fixnum)
|
25
|
-
matcher.matches?(Numeric)
|
26
|
-
matcher.description.should == "be an instance of Fixnum"
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
describe "actual.should_not #{method}(expected)" do
|
31
|
-
|
32
|
-
it "fails with failure message for should_not if actual is instance of expected class" do
|
33
|
-
lambda { "foo".should_not send(method, String) }.should fail_with(%Q{expected "foo" not to be an instance of String})
|
34
|
-
end
|
35
|
-
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module RSpec
|
4
|
-
module Matchers
|
5
|
-
[:be_a_kind_of, :be_kind_of].each do |method|
|
6
|
-
describe "actual.should #{method}(expected)" do
|
7
|
-
it_behaves_like "an RSpec matcher", :valid_value => 5, :invalid_value => "a" do
|
8
|
-
let(:matcher) { send(method, Fixnum) }
|
9
|
-
end
|
10
|
-
|
11
|
-
it "passes if actual is instance of expected class" do
|
12
|
-
5.should send(method, Fixnum)
|
13
|
-
end
|
14
|
-
|
15
|
-
it "passes if actual is instance of subclass of expected class" do
|
16
|
-
5.should send(method, Numeric)
|
17
|
-
end
|
18
|
-
|
19
|
-
it "fails with failure message for should unless actual is kind of expected class" do
|
20
|
-
lambda { "foo".should send(method, Array) }.should fail_with(%Q{expected "foo" to be a kind of Array})
|
21
|
-
end
|
22
|
-
|
23
|
-
it "provides a description" do
|
24
|
-
matcher = be_a_kind_of(String)
|
25
|
-
matcher.matches?("this")
|
26
|
-
matcher.description.should == "be a kind of String"
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
describe "actual.should_not #{method}(expected)" do
|
31
|
-
it "fails with failure message for should_not if actual is kind of expected class" do
|
32
|
-
lambda { "foo".should_not send(method, String) }.should fail_with(%Q{expected "foo" not to be a kind of String})
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|