如何从spec文件中访问常量值?

时间:2014-03-13 12:46:51

标签: ruby

当我按uninitialized constant运行此rspec时出现rspec foo_spec.rb错误。

# foo.rb
class Foo
  FILENAME = "filename.txt"
  def filename
    FILENAME
  end
end

# foo_spec.rb
require_relative 'foo'

describe Foo do
  describe "#filename" do
    it "should have right filename" do
      foo = Foo.new
      expect(foo.filename).to eq FILENAME
    end
  end
end

我确认是否将FILENAME更改为"filename.txt",测试通过。

我应该如何在rspec中使用常量值?

1 个答案:

答案 0 :(得分:1)

这不是一个rspec问题,它是一个Ruby问题。您需要使用声明的类来限定常量。 FILENAME应为Foo::FILENAME

您只能在FILENAME的上下文中通过Foo引用它。否则,假设我有一个类Bar,它也定义了一个名为FILENAME的常量,Ruby怎么能找出我指的是哪一个?