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