我有一些代码,记录到一个全局静态日志类,如工作:
GlobalLog.debug("Some message")
然而,在我的测试中,我不希望有真正的日志,因为它引入了很多不必要的依赖。 所以我想嘲笑一下:
describe "some function" do
before(:all) do
log = double('log')
GlobalLog = log
log.stub(:debug)
end
...
end
不幸的是,因为双打均例如后被清除出来,这是不允许的:
https://www.relishapp.com/rspec/rspec-mocks/docs/scope
如果我改变了before(:all)
到before(:each)
,代码工作,但我得到一个警告:
warning: already initialized constant GlobalLog
这是堵塞了我的测试输出,所以我想,以避免该警告。 是否有一个干净的解决方案?