我正在使用一些代码记录到全局静态日志记录类,例如:
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
这阻塞了我的测试输出,因此我想避免警告。有没有干净的解决方案?
在中定义GlobalLog
一次spec_helper.rb
。
class GlobalLog
class << self
[:info, :debug, :warn, :error].each do |method|
define_method(method) {|*|}
end
end
end
spec/support
如果您想清洁它,可以扔掉它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句