如何使用 Rspec 3 模拟测试此模块中的配置方法?
module TestModule
class << self
attr_accessor :config
end
def self.config
@config ||= Config.new
end
class Config
attr_accessor :money_url
def initialize
@money_url = "https://example1.come"
end
end
end
我试过这样的事情:
describe "TestModule config" do
it "should have config instance" do
config = class_double("TestModule::Config")
obj = instance_double("TestModule")
allow(obj).to receive(:config).and_return(config)
obj.config
expect(obj.config).to eq(config)
end
end
看起来,它不起作用,为什么?
失败:
1) TestModule 配置应该有配置实例失败/错误:allow(obj).to receive(:config).and_return(config) TestModule 没有实现:config # ./spec/config_spec.rb:41:in `block (2水平)在'