4
我有一个非rails ruby应用程序,它使用记录器来处理日志输出到标准输出。
我想添加检查输出的规格,并找到两种方法来实现这一点,似乎两种方式都不起作用。Rspec无法检查记录器信息输出
所以两种方法都在此spec.rb文件:
require 'rspec'
require 'logger'
describe 'Logger' do
it 'expect to output' do
expect { Logger.new(STDOUT).info('Hello') }.to output.to_stdout
end
it 'expect to recieve' do
expect(Logger.new(STDOUT).info('Hello')).to receive(:info)
end
end
我必须输出与日志信息终端,但两者都验证失败
看起来像一个非常简单的解决方法,我很难理解它是如何工作的。我希望有一个更好的方法 – ShockwaveNN
好吧,你不需要测试记录器类是否真的在做它的工作,你只是想确保你使用的记录器类正在输出你的特定信息。这是做IMO的最好方法。 – Anthony
@Anthony,如果你继承'Logger'并覆盖'info',像我一样?那么你需要测试它,否则你的测试覆盖率将不会是100%。 –