gpt4 book ai didi

ruby-on-rails - Rspec let(:model)+ model.reload不重新加载模型

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

let(:product) { FactoryGirl.create(:product) }

it "should blah" do
product.name = "a"
product.save!
post :update, id: product.id, product: { name: "x" }
# assuming :update changes the product's name to params[:name]
product.reload.name.should == "x"
end


should总是失败,除非我做类似的事情

Product.find(product.id).name.should == "x"


我滥用 let吗?

如果我使用在 @productbefore :each中创建的 @product.reload很好。

最佳答案

如果在执行规范期间中断并调用self.class.method(:let).source,则会得到类似以下内容的信息:

def let(name, &block)
define_method(name) do
__memoized.fetch(name) {|k| __memoized[k] = instance_eval(&block) }
end
end


经过进一步检查, __memoized只是一个简单的哈希。我认为这里没有任何幻想。您使用了哪个精确的rails和rspec版本?

关于ruby-on-rails - Rspec let(:model)+ model.reload不重新加载模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11573932/

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