类: RSpec::Mocks::DirectObjectReference

继承
Object
  • Object
显示所有
定义于
lib/rspec/mocks/object_reference.rb

概述

rspec-mocks 的引用接口实现。 当对象被传递给 ExampleMethods#object_double 或匿名类或模块被传递给 ExampleMethods#instance_doubleExampleMethods#class_double 时使用。 代表对该对象的引用。

实例方法摘要 折叠

构造函数详细信息

#initialize(object) ⇒DirectObjectReference

返回 DirectObjectReference 的新实例。

参数

  • object (Object)

    此引用的对象

58
59
60
# File 'lib/rspec/mocks/object_reference.rb', line 58
def initialize(object)
  @object = object
end

实例方法详细信息

#const_to_replaceObject

为与其他对象引用实现的接口一致性而定义。 抛出 ArgumentError 表示当将对象参数传递给 object_doubleas_stubbed_const 无效。

抛出

  • (ArgumentError)
70
71
72
73
# File 'lib/rspec/mocks/object_reference.rb', line 70
def const_to_replace
  raise ArgumentError,
        "Can not perform constant replacement with an anonymous object."
end

#defined?true

对于对象始终返回 true,因为类已定义。

返回

  • (true)
85
86
87
# File 'lib/rspec/mocks/object_reference.rb', line 85
def defined?
  true
end

#descriptionString

返回对象的描述(通过 #inspect)。

返回

  • (String)

    对象的描述(通过 #inspect)。

63
64
65
# File 'lib/rspec/mocks/object_reference.rb', line 63
def description
  @object.inspect
end

#targetObject

验证双打的目标(对象本身)。

返回

  • (Object)
78
79
80
# File 'lib/rspec/mocks/object_reference.rb', line 78
def target
  @object
end

#when_loaded {|Object| ... } ⇒Object

如果引用目标已加载,则产生收益,提供了一种通用机制,可以根据需要仅在引用目标加载时运行一段代码。

此特定实现始终产生收益,因为直接引用始终已加载。

产生

  • (Object)

    此引用的目标。

97
98
99
# File 'lib/rspec/mocks/object_reference.rb', line 97
def when_loaded
  yield @object
end