class RSpec::SleepingKingStudios::Matchers::Core::HaveWriterMatcher
Matcher for testing whether an object has a specific property writer, e.g. responds to :property= and updates the state.
@since 1.0.0
Public Class Methods
Source
# File lib/rspec/sleeping_king_studios/matchers/core/have_writer_matcher.rb, line 18 def initialize expected, allow_private: false @expected = expected.to_s.gsub(/=$/,'').intern @allow_private = allow_private end
@param [String, Symbol] expected the property to check for on the actual
object
Public Instance Methods
Source
# File lib/rspec/sleeping_king_studios/matchers/core/have_writer_matcher.rb, line 25 def allow_private? !!@allow_private end
@return [Boolean] True if the matcher matches private reader methods,
otherwise false.
Source
# File lib/rspec/sleeping_king_studios/matchers/core/have_writer_matcher.rb, line 32 def description "have writer :#{@expected}" end
Generates a description of the matcher expectation.
@return [String] The matcher description.
Source
# File lib/rspec/sleeping_king_studios/matchers/core/have_writer_matcher.rb, line 52 def failure_message "expected #{@actual.inspect} to respond to :#{@expected}="\ ", but did not respond to :#{@expected}=" end
Source
# File lib/rspec/sleeping_king_studios/matchers/core/have_writer_matcher.rb, line 58 def failure_message_when_negated "expected #{@actual.inspect} not to respond to :#{@expected}="\ ", but responded to :#{@expected}=" end
Source
# File lib/rspec/sleeping_king_studios/matchers/core/have_writer_matcher.rb, line 45 def matches? actual super responds_to_writer?(:allow_private => allow_private?) end
Checks if the object responds to :expected=. Additionally, if a value expectation is set, assigns the value via :expected= and compares the subsequent value to the specified value using :expected or the block provided to with.
@param [Object] actual the object to check
@return [Boolean] true if the object responds to :expected= and matches
the value expectation (if any); otherwise false
Calls superclass method
RSpec::SleepingKingStudios::Matchers::BaseMatcher#matches?