我有用RSpec编写的测试,这些测试一直持续到升级到Ruby 2.5.1。
有问题的测试在let
块中有几个before(:each)
语句。不断被删除的文件就在其中:
let(:fake_s3_file) { File.open(File.join(File.dirname(__FILE__), '../fixtures/Alexa.pdf')) }
稍后在before(:each)
节中,我有这个:
allow(s3_client).to receive(:get_object).and_return(fake_s3_file)
allow(Tempfile).to receive(:new).and_return(fake_s3_file)
在Ruby 2.5.1中,似乎由于File.open
或Tempfile
引用而删除了我的源文件。有人遇到过这个问题吗,有什么好的方法吗?我还没有发现任何文档说Tempfile
或File.open
发生了任何变化。我应该在每次运行规范之前将我的灯具文件复制到/tmp
目录中吗?这样做似乎很错误,而且很慢。