Module: RSpecial::Matchers
- Included in:
- Test::Matchers
- Defined in:
- lib/rspecial/matchers.rb
Overview
This module provides matchers for RSpec-compatiblity.
The set is not fully compataible, but provides most RSpec matchers.
The most notable exlusion for the moment is the have matchers.
Compatability will improve with time. Feel obligated to submit a patch if you really need it. ;)
Instance Method Summary collapse
-
#be_close(delta, criterion) ⇒ Object
Passes if expected and actual are nto equal within delta tolerance.
-
#be_empty ⇒ Object
Passes if object is empty.
-
#be_false ⇒ Object
Passed if object is
false. -
#be_instance_of(cls) ⇒ Object
(also: #be_an_instance_of)
Passes if object is an instance of class.
-
#be_kind_of(cls) ⇒ Object
(also: #be_a_kind_of, #be_a, #be_an)
Pass if object is a kind of class.
-
#be_like(criterion) ⇒ Object
Passes if the expected and actual are alike.
-
#be_nil ⇒ Object
Pass if object is
nil. -
#be_true ⇒ Object
Passed if object is
true. -
#eq(obj) ⇒ Object
Passes if
actual == expected. -
#eql(exp) ⇒ Object
Pass if two objects are equal using
#eql?method. -
#equal(obj) ⇒ Object
(also: #be_identical_to)
Passes if actual is the same exact object as expected.
-
#equate_to(exp) ⇒ Object
Passes if
expected==actual. - #expect(target) ⇒ Object
- #have(n) ⇒ Object (also: #have_exactly)
- #have_at_least(n) ⇒ Object
- #have_at_most(n) ⇒ Object
-
#match(regexp) ⇒ Object
Pass if object matches pattern using
#=~method. -
#raise_error(exception = Exception) ⇒ Object
Pass if an exception is raised.
-
#respond_to(method) ⇒ Object
Pass if object responds to message.
-
#satisfy(&block) ⇒ Object
Passes if block is satisfied given target object as argument.
-
#throw_symbol(sym = nil) ⇒ Object
Pass if procedure throws a specified symbol.
Instance Method Details
#be_close(delta, criterion) ⇒ Object
Passes if expected and actual are nto equal within delta tolerance.
value.should be_close(delta, criterion)
42 43 44 |
# File 'lib/rspecial/matchers.rb', line 42 def be_close(delta, criterion) WithinAssay.assertor(criterion, delta) end |
#be_empty ⇒ Object
Passes if object is empty.
object.should be_empty
52 53 54 |
# File 'lib/rspecial/matchers.rb', line 52 def be_empty EmptyAssay.assertor end |
#be_false ⇒ Object
Passed if object is false.
value.should be_false
88 89 90 |
# File 'lib/rspecial/matchers.rb', line 88 def be_false FalseAssay.assertor end |
#be_instance_of(cls) ⇒ Object Also known as: be_an_instance_of
Passes if object is an instance of class.
object.should be_instance_of(class)
123 124 125 |
# File 'lib/rspecial/matchers.rb', line 123 def be_instance_of(cls) InstanceAssay.assertor(cls) end |
#be_kind_of(cls) ⇒ Object Also known as: be_a_kind_of, be_a, be_an
Pass if object is a kind of class.
object.should be_kind_of(class)
136 137 138 |
# File 'lib/rspecial/matchers.rb', line 136 def be_kind_of(cls) KindAssay.assertor(cls) end |
#be_like(criterion) ⇒ Object
Passes if the expected and actual are alike.
object.should be_like(criterion)
There is no equivalant for this in RSpec, we simply add it here to cover all Assays available.
32 33 34 |
# File 'lib/rspecial/matchers.rb', line 32 def be_like(criterion) LikeAssay.assertor(criterion) end |
#be_nil ⇒ Object
Pass if object is nil.
value.should be_nil
162 163 164 |
# File 'lib/rspecial/matchers.rb', line 162 def be_nil NilAssay.assertor end |
#be_true ⇒ Object
Passed if object is true.
object.should be_true
223 224 225 |
# File 'lib/rspecial/matchers.rb', line 223 def be_true TrueAssay.assertor end |
#eq(obj) ⇒ Object
Passes if actual == expected.
object.should eq(object)
112 113 114 |
# File 'lib/rspecial/matchers.rb', line 112 def eq(obj) EqualAssay.assertor(obj) end |
#eql(exp) ⇒ Object
Pass if two objects are equal using #eql? method.
object1.should eql(object2)
198 199 200 |
# File 'lib/rspecial/matchers.rb', line 198 def eql(exp) EqualityAssay.assertor(exp) end |
#equal(obj) ⇒ Object Also known as: be_identical_to
Passes if actual is the same exact object as expected.
object.should be_identical_to(object)
99 100 101 |
# File 'lib/rspecial/matchers.rb', line 99 def equal(obj) IdentityAssay.assertor(obj) end |
#equate_to(exp) ⇒ Object
Passes if expected == actual.
'MY STRING'.should equate_to('my string'.upcase)
'MY STRING'.should_not equate_to('another string')
This matcher is not supported by RSpec, but is added so that the EqualityAssay has an explict matcher available.
66 67 68 |
# File 'lib/rspecial/matchers.rb', line 66 def equate_to(exp) EqualityAssay.assertor(exp) end |
#expect(target) ⇒ Object
252 253 254 |
# File 'lib/rspecial/matchers.rb', line 252 def expect(target) Expect.new(target) end |
#have(n) ⇒ Object Also known as: have_exactly
230 231 232 |
# File 'lib/rspecial/matchers.rb', line 230 def have(n) Have.new(n) end |
#have_at_least(n) ⇒ Object
239 240 241 |
# File 'lib/rspecial/matchers.rb', line 239 def have_at_least(n) Have.new(n, :at_least) end |
#have_at_most(n) ⇒ Object
246 247 248 |
# File 'lib/rspecial/matchers.rb', line 246 def have_at_most(n) Have.new(n, :at_most) end |
#match(regexp) ⇒ Object
Pass if object matches pattern using #=~ method.
object.should match(regexp)
151 152 153 |
# File 'lib/rspecial/matchers.rb', line 151 def match(regexp) MatchAssay.assertor(regexp) end |
#raise_error(exception = Exception) ⇒ Object
Support for message matching ?
Pass if an exception is raised.
lambda { do_something_risky }.should raise_error
lambda { do_something_risky }.should raise_error(PoorRiskDecisionError)
176 177 178 |
# File 'lib/rspecial/matchers.rb', line 176 def raise_error(exception=Exception) RaiseAssay.assertor(exception) end |
#respond_to(method) ⇒ Object
Pass if object responds to message.
object.should respond_to(:method_name)
187 188 189 |
# File 'lib/rspecial/matchers.rb', line 187 def respond_to(method) RespondAssay.assertor(method) end |
#satisfy(&block) ⇒ Object
Passes if block is satisfied given target object as argument.
5.should satisfy{ |n| n > 3}
77 78 79 |
# File 'lib/rspecial/matchers.rb', line 77 def satisfy(&block) ExecutionAssay.assertor(&block) end |
#throw_symbol(sym = nil) ⇒ Object
Support for throw argument. (Does RSpec even support this?)
Pass if procedure throws a specified symbol.
lambda { do_something_risky }.should throw_symbol
lambda { do_something_risky }.should throw_symbol(:that_was_risky)
212 213 214 |
# File 'lib/rspecial/matchers.rb', line 212 def throw_symbol(sym=nil) #, arg=nil) ThrowAssay.assertor(sym) end |