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,
lib/spec/expectations/extensions/string_and_symbol.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, MatcherHandlerHelper, ObjectExpectations, StringHelpers Classes: ExpectationMatcherHandler, ExpectationNotMetError, NegativeExpectationMatcherHandler
Class Attribute Summary collapse
-
.differ ⇒ Object
Returns the value of attribute differ.
Class Method Summary collapse
-
.fail_with(message, expected = nil, target = nil) ⇒ Object
raises a Spec::Expectations::ExpectationNotMetError with message.
Class Attribute Details
.differ ⇒ Object
Returns the value of attribute differ.
34 35 36 |
# File 'lib/spec/expectations.rb', line 34 def differ @differ end |
Class Method Details
.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.
41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/spec/expectations.rb', line 41 def 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 |