我喜欢使用 RSpec 的 include 配置方法来包含仅用于命名空间的模块,这样我就不必为它们的内部类和模块使用完全限定的名称。这适用于 Ruby 1.9.2 中的 RSpec 2.11.0。但是现在在 Ruby 1.9.3 上这不再起作用了。我怎样才能让它再次工作?
这里有一个例子 foobar_spec.rb:
module Foo
class Bar
end
end
RSpec.configure do |config|
config.include Foo
end
describe Foo::Bar do
it "should work" do
Bar.new
end
end
如果您通过以下命令调用它:
rspec foobar_spec.rb
它可以在 Ruby 1.9.2 中正常工作。但它会在 Ruby 1.9.3 中引发以下错误:
Failure/Error: Bar.new
NameError:
uninitialized constant Bar