Calling instance_of will cause all instances of the passed in Class to have the Double defined.
The following example mocks all User’s valid? method and return false.
mock.instance_of(User).valid? {false}
The following example mocks and proxies User#projects and returns the first 3 projects.
mock.instance_of(User).projects do |projects| projects[0..2] end
# File lib/rr/double_definitions/strategies/scope/instance_of_class.rb, line 19 19: def initialize(*args) 20: super 21: 22: if !double_definition_create.no_subject? && !double_definition_create.subject.is_a?(Class) 23: raise ArgumentError, "instance_of only accepts class objects" 24: end 25: end
# File lib/rr/double_definitions/strategies/scope/instance_of_class.rb, line 28 28: def do_call 29: instance_of_subject_double_definition_create = DoubleDefinitionCreate.new 30: instance_of_subject_double_definition_create.strong if definition.verify_method_signature? 31: instance_of_subject_double_definition_create.stub(subject) 32: instance_of_subject_double_definition_create.call(:new) do |*args| 33: ##### 34: instance = subject.allocate 35: double_injection = Injections::DoubleInjection.create(instance, method_name) 36: Double.new(double_injection, definition) 37: ##### 38: if args.last.is_a?(ProcFromBlock) 39: instance.__send__(:initialize, *args[0..(args.length-2)], &args.last) 40: else 41: instance.__send__(:initialize, *args) 42: end 43: instance 44: end 45: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.