gpt4 book ai didi

ruby-on-rails - Rspec,FactoryGirl : FactoryGirl. 在之前创建(:all) isn't persisting records?

转载 作者:行者123 更新时间:2023-12-04 04:38:28 27 4
gpt4 key购买 nike

我正在尝试为我的 Image 对象的一些测试创建一些记录。但是,似乎它们并没有持续存在:

describe Image do
before(:all) do
for i in 0..2
FactoryGirl.create(:image)
end

puts Image.count
end

it "blah blah blah" do
puts Image.count
end

it "blah blah blah 2" do
puts Image.count
end

在上面的例子中,第一次调用 Image.count返回 3;后续调用返回 0。该示例在我使用 before(:each) 时有效。 , 但是我觉得 before(:all)应该真的是我想要的。

最佳答案

你很少想要使用 before(:all)。您想使用 before(:each)。 before(:all) 在上下文/描述 block 开始时运行, before(:each) 在其中的每个规范之前运行。这就是为什么您在第二次和第三次调用中得到 0 的原因。

您不想使用 before(:all) 的另一个重要原因是您不希望测试一起运行。这意味着示例绑定(bind)在一起,这在测试中是绝对禁止的。你真的应该只使用 before(:all) 来设置全局协作者,而不是你在示例中描述的东西。

简短答案:使用 before(:each)

关于ruby-on-rails - Rspec,FactoryGirl : FactoryGirl. 在之前创建(:all) isn't persisting records?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19304849/

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