如何使用其常量无法更改的模块测试函数

时间:2013-09-11 15:35:02

标签: ruby rspec

如何编写测试以测试下面定义的函数hey?模块CONSTANT已加载到spec_helper,其变量已冻结且无法更改。

module CONSTANT
  X=1
  Y=2
  self.freeze
end

def hey
  if CONSTANT::X == 1
    puts "OKOK"
  else
    puts "NOT OK"
  end
end

如何编写测试以测试else子句?

1 个答案:

答案 0 :(得分:1)

使用const_set类方法。

编辑:我刚注意到freeze命令。我已经更新了我的例子。

示例:

CONSTANT = CONSTANT.dup
CONSTANT.const_set("X",0) # this will create a warning message when it sets the value
puts CONSTANT::X # returns 0