我有一个非rails
ruby应用程序,它使用logger处理日志输出到stdout.
我想添加规范来检查输出,并找到两种方法来实现它,似乎两种方式都不起作用.
所以两种方式都在这个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
我有终端输出日志消息,但两个验证都失败了
最佳答案 我通常只使用这样的双打:
describe 'logging' do
it 'handles output' do
logger = double('logger')
allow(Logger).to receive(:new).and_return(logger)
run_some_code
expect(logger).to receive(:info).with("Hello")
end
end