这个问题正在寻找一种方法来允许对 rspec 3.9 示例中的模块中的常量进行无限定引用。这主要是为了节省空间和打字。
module MyConsts
FOO = "foo"
end
RSpec.describe "Tests Module Constants" do
it 'has unqualified access to constants.' do
expect(FOO).to eq("foo")
end
end
Run Code Online (Sandbox Code Playgroud)
这是一种从 module 包含辅助函数的便捷方法,但它与在类上使用 include 不同,因为常量无法按预期使用。
module MyConsts
FOO = "foo"
end
RSpec.configure do |c|
c.include MyConsts
end
RSpec.describe "Tests Module Constants" do
it 'has qualified access to constants.' do
expect(MyConsts::FOO).to eq("foo")
end
it 'has unqualified access to constants.' do
expect(FOO).to eq("foo")
end
end
Run Code Online (Sandbox Code Playgroud)
不合格访问示例失败。如果能够混合模块中的常量就好了,这样这样的例子就可以通过。
Failures:
1) Tests …Run Code Online (Sandbox Code Playgroud)