Method: ActiveSupport::Testing::SimpleStubs#stub_object
- Defined in:
- activesupport/lib/active_support/testing/time_helpers.rb
#stub_object(object, method_name, &block) ⇒ Object
Stubs object.method_name with the given block If the method is already stubbed, remove that stub so that removing this stub will restore the original implementation.
Time.current # => Sat, 09 Nov 2013 15:34:49 EST -05:00
target = Time.zone.local(2004, 11, 24, 1, 4, 44)
simple_stubs.stub_object(Time, :now) { at(target.to_i) }
Time.current # => Wed, 24 Nov 2004 01:04:44 EST -05:00
23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'activesupport/lib/active_support/testing/time_helpers.rb', line 23 def stub_object(object, method_name, &block) if stub = stubbing(object, method_name) unstub_object(stub) end new_name = "__simple_stub__#{method_name}__#{object_id}" @stubs[object.object_id][method_name] = Stub.new(object, method_name, new_name) object.singleton_class.alias_method new_name, method_name object.define_singleton_method(method_name, &block) end |