class Bogus::VerifiesStubDefinition

Public Instance Methods

verify!(object, method_name, args) click to toggle source
# File lib/bogus/stubbing/verifies_stub_definition.rb, line 7
def verify!(object, method_name, args)
  stubbing_non_existent_method!(object, method_name) unless object.respond_to?(method_name)
  return unless object.methods.include?(method_name)
  return if WithArguments.with_matcher?(args)
  method = object.method(method_name)
  verify_call!(method, args)
end

Private Instance Methods

stubbing_non_existent_method!(object, method_name) click to toggle source
# File lib/bogus/stubbing/verifies_stub_definition.rb, line 31
def stubbing_non_existent_method!(object, method_name)
  raise NameError, "#{object.inspect} does not respond to #{method_name}"
end
verify_call!(method, args) click to toggle source
# File lib/bogus/stubbing/verifies_stub_definition.rb, line 17
def verify_call!(method, args)
  object = Object.new
  fake_method = method_stringifier.stringify(method, "")
  object.instance_eval(fake_method)
  object.send(method.name, *args)
rescue ArgumentError
  wrong_arguments!(method, args)
end
wrong_arguments!(method, args) click to toggle source
# File lib/bogus/stubbing/verifies_stub_definition.rb, line 26
def wrong_arguments!(method, args)
  args_string = method_stringifier.arguments_as_string(method.parameters)
  raise ArgumentError, "tried to stub #{method.name}(#{args_string}) with arguments: #{args.map(&:inspect).join(",")}"
end