我正在通过创建虚拟实例来测试模块(Foo::Api::Utility
)。该模块引用由includes
类别(self.class::BASE_URL
)定义的常量。
我希望能够访问此值并进行设置。
这不起作用:
before(:each) do
@utility = Object.new
@utility.extend(Foo::Api::Utility)
@utility.const_set('BASE_URL','https://domain.tld/api/v1')
end
正确的方法是什么?
答案 0 :(得分:2)
那:
before(:each) do
@utility_class = Class.new
@utility_class.include(Foo::Api::Utility)
@utility_class.const_set('BASE_URL','https://domain.tld/api/v1')
@utility = @utility_class.new
end
或者,以更简洁的方式:
before(:each) do
@utility =
Class.new do
include Foo::Api::Utility
const_set :BASE_URL,'https://domain.tld/api/v1'
end.new
end