类:RSpec::Mocks::Constant

继承
Object
  • Object
显示全部
扩展自
Support::RecursiveConstMethods
定义于
lib/rspec/mocks/mutate_const.rb

概述

提供有关可能(也可能没有)被 rspec-mocks 改变的常量的信息。

实例属性摘要 折叠

类方法摘要 折叠

实例方法摘要 折叠

构造函数详情

#initialize(name) {|_self| ... } ⇒Constant

此方法是私有 API 的一部分。 应尽可能避免使用此方法,因为它可能会在将来被移除或更改。

返回 Constant 的新实例。

产生

  • (_self)

产生参数

11
12
13
14
15
16
17
18
# File 'lib/rspec/mocks/mutate_const.rb', line 11
def initialize(name)
  @name = name
  @previously_defined = false
  @stubbed = false
  @hidden = false
  @valid_name = true
  yield self if block_given?
end

实例属性详情

#nameString (只读)

返回常量的完全限定名称。

返回

  • (String)

    常量的完全限定名称。

21
22
23
# File 'lib/rspec/mocks/mutate_const.rb', line 21
def name
  @name
end

#original_valueObject?

返回常量的原始值(例如,在它被 rspec-mocks 改变之前),如果常量以前没有定义,则为 nil。

返回

  • (Object, nil)

    常量的原始值(例如,在它被 rspec-mocks 改变之前),如果常量以前没有定义,则为 nil。

26
27
28
# File 'lib/rspec/mocks/mutate_const.rb', line 26
def original_value
  @original_value
end

类方法详情

.original(name) ⇒Constant

查询 rspec-mocks 以获取有关命名常量的信息。

参数

  • name (String)

    常量的名称

返回

  • (Constant)

    包含有关命名常量的信息的对象。

86
87
88
89
# File 'lib/rspec/mocks/mutate_const.rb', line 86
def self.original(name)
  mutator = ::RSpec::Mocks.space.constant_mutator_for(name)
  mutator ? mutator.to_constant : unmutated(name)
end

实例方法详情

#hidden?Boolean

返回 rspec-mocks 是否已隐藏此常量。

返回

  • (Boolean)

    rspec-mocks 是否已隐藏此常量。

51
52
53
# File 'lib/rspec/mocks/mutate_const.rb', line 51
def hidden?
  @hidden
end

#mutated?Boolean

返回 rspec-mocks 是否已改变(存根或隐藏)此常量。

返回

  • (Boolean)

    rspec-mocks 是否已改变(存根或隐藏)此常量。

39
40
41
# File 'lib/rspec/mocks/mutate_const.rb', line 39
def mutated?
  @stubbed || @hidden
end

#previously_defined?Boolean

返回常量是否在当前示例之前定义。

返回

  • (Boolean)

    常量是否在当前示例之前定义。

33
34
35
# File 'lib/rspec/mocks/mutate_const.rb', line 33
def previously_defined?
  @previously_defined
end

#stubbed?Boolean

返回 rspec-mocks 是否已存根此常量。

返回

  • (Boolean)

    rspec-mocks 是否已存根此常量。

45
46
47
# File 'lib/rspec/mocks/mutate_const.rb', line 45
def stubbed?
  @stubbed
end

#to_sObject 也称为: inspect

默认的 to_s 没什么用,因此提供了自定义版本。

62
63
64
# File 'lib/rspec/mocks/mutate_const.rb', line 62
def to_s
  "#<#{self.class.name} #{name}>"
end

#valid_name?Boolean

返回提供的常量名称是否为有效的 Ruby 常量名称。

返回

  • (Boolean)

    提供的常量名称是否为有效的 Ruby 常量名称。

57
58
59
# File 'lib/rspec/mocks/mutate_const.rb', line 57
def valid_name?
  @valid_name
end