s-c*_*o-m 1 testing rspec ruby-on-rails file
例如,它生成了一个log(my_work.log)内容:
I, [2015-05-14T00:00:00.000000 #5590] INFO -- : Work started.
Run Code Online (Sandbox Code Playgroud)
我想测试my_work.log是否有内容Work started.,该怎么办?
我不想匹配所有行包括datetime,因为包含#5590,我不能存根.
初始化Logger时,可以传入StringIO的实例以捕获输出,然后匹配预期的内容:
require 'logger'
describe "log" do
let(:log) { StringIO.new }
let(:logger) { Logger.new(log) }
let(:expected) { "Work started" }
it "should add the expected content to the log" do
logger.info(expected)
log.rewind
expect(log.read).to match(/.+#{expected}$/)
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2937 次 |
| 最近记录: |