Sha256: 037054210d260c2623dddd1e07cfbb8fbba299ba23feff445d7cc3b22f5af24e
Contents?: true
Size: 955 Bytes
Versions: 1
Compression:
Stored size: 955 Bytes
Contents
# RSpec matcher to spec delegations. RSpec::Matchers.define :delegate do |method| match do |object| @method = method @via ||= method @object = object if !@object.respond_to?(@to) raise "#{@object} does not respond to ##{@to}!" end if defined?(RR) receiver = Object.new mock(@object, @to).returns(receiver) mock(receiver, @via).returns(:called) else @object.stub(@to).and_return double('receiver') @object.send(@to).stub(@via).and_return :called end @object.send(@method) == :called end description do "delegate ##{@method} to ##{@to}##{@via}" end failure_message_for_should do |text| "expected #{@object} to delegate ##{@method} to ##{@to}##{@via}" end failure_message_for_should_not do |text| "expected #{@object} not to delegate ##{@method} to ##{@to}##{@via}" end chain(:to) { |receiver| @to = receiver } chain(:via) { |via| @via = via } end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ndlib-on-rspec-0.0.4 | lib/ndlib-on-rspec/delegate_matcher.rb |