Module: Spec::Expectations
- Defined in:
- lib/spec/expectations.rb,
lib/spec/expectations/errors.rb,
lib/spec/expectations/handler.rb,
lib/spec/expectations/differs/default.rb,
lib/spec/expectations/extensions/object.rb
Overview
Spec::Expectations lets you set expectations on your objects.
result.should == 37
team.should have(11).players_on_the_field
How Expectations work.
Spec::Expectations adds two methods to Object:
should(matcher=nil)
should_not(matcher=nil)
Both methods take an optional Expression Matcher (See Spec::Matchers).
When should
receives an Expression Matcher, it calls matches?(self)
. If it returns true
, the spec passes and execution continues. If it returns false
, then the spec fails with the message returned by matcher.failure_message
.
Similarly, when should_not
receives a matcher, it calls matches?(self)
. If it returns false
, the spec passes and execution continues. If it returns true
, then the spec fails with the message returned by matcher.negative_failure_message
.
RSpec ships with a standard set of useful matchers, and writing your own matchers is quite simple. See Spec::Matchers for details.
Defined Under Namespace
Modules: Differs, ObjectExpectations Classes: ExpectationMatcherHandler, ExpectationNotMetError, InvalidMatcherError, NegativeExpectationMatcherHandler
Class Method Summary collapse
- .differ ⇒ Object
- .differ=(differ) ⇒ Object
-
.fail_with(message, expected = nil, target = nil) ⇒ Object
raises a Spec::Expectations::ExpectationNotMetError with message.
Class Method Details
.differ ⇒ Object
33 34 35 |
# File 'lib/spec/expectations.rb', line 33 def self.differ @differ end |
.differ=(differ) ⇒ Object
37 38 39 |
# File 'lib/spec/expectations.rb', line 37 def self.differ=(differ) @differ = differ end |
.fail_with(message, expected = nil, target = nil) ⇒ Object
raises a Spec::Expectations::ExpectationNotMetError with message
When a differ has been assigned and fail_with is passed expected
and target
, passes them to the differ to append a diff message to the failure message.
46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/spec/expectations.rb', line 46 def self.fail_with(, expected=nil, target=nil) # :nodoc: if (Array === ) & (.length == 3) , expected, target = [0], [1], [2] end unless (differ.nil? || expected.nil? || target.nil?) if expected.is_a?(String) << "\nDiff:" << self.differ.diff_as_string(target.to_s, expected) elsif !target.is_a?(Proc) << "\nDiff:" << self.differ.diff_as_object(target, expected) end end Kernel::raise(Spec::Expectations::ExpectationNotMetError.new()) end |