如果我有这样的课程
class Foo < File
# fun stuff
end
我想测试它确实是从File继承的,我可以写
describe Foo
let(:a_file) { Foo.open('blah.txt') }
it "is a File" do
expect(a_file).to be_a File
end
end
我的问题是,let()会在运行示例后关闭文件吗?或者我是否需要在某处明确关闭该文件。
或者这样的事情会更好,
it "is a File" do
Foo.open('blah.txt') do |f|
expect(f).to be_a File
end
end
完全忘记了let()?
我查看using let和closing files作为参考,但我仍然不确定。
答案 0 :(得分:3)
如果您只在一次测试中使用a_file
,那么您的第二个例子就是好的。
it "is a File" do
Foo.open('blah.txt') do |f|
expect(f).to be_a File
end
end
如果你多次使用a_file
,你可以这样做:
before do
@file = Foo.open('blah.txt')
end
after do
@file.close
end
it "is a File" do
expect(@file).to be_a File
end
...