gpt4 book ai didi

ruby - 在 ruby​​ rspec 中使用 let 时测试和关闭文件对象

转载 作者:数据小太阳 更新时间:2023-10-29 08:46:16 24 4
gpt4 key购买 nike

如果我有这样的类(class)

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 letclosing files供引用,但我仍然不确定。

最佳答案

如果您打算在一个测试中使用 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

...

关于ruby - 在 ruby​​ rspec 中使用 let 时测试和关闭文件对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27827735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com