gpt4 book ai didi

ruby-on-rails - Factory Girl 使用 Ruby on Rails 进行测试,依赖项

转载 作者:太空宇宙 更新时间:2023-11-03 16:10:56 24 4
gpt4 key购买 nike

我正在使用 RSpec 为 Ruby on Rails 应用程序编写一些测试,但遇到了一个我似乎无法弄清楚的问题。我有一堆与其他对象关联的对象,我正在使用 Factory Girl 来创建它们。这是我遇到问题的示例:

    user = Factory.create(:user)
package = Factory.build(:package, :user => user)
item = Factory.create(:item, :package => package)

所有的包都属于一个用户,所以第一个依赖关系是微不足道的。创建一个用户然后将它与一个包相关联,没问题。现在问题来了。我的包模型有一个验证,表明如果包中至少有一个项目就无法创建它。这意味着我无法在其上使用 Factory.create。这几乎与在我的 packages_controller.rb 中执行 @Package.new 相同,这很好。后来,我继续创建一个项目,问题是,我无法将这个项目与包裹关联起来,因为包裹还没有 ID。

无论如何我可以创建我的包,创建一个项目并保存它,然后在包有一个 ID 后将两者关联在一起吗?

最佳答案

查看关联:

http://github.com/thoughtbot/factory_girl

Associated instances can be generated by using the association method when defining a lazy attribute:

Factory.define :post do |p|
# ...
p.author {|author| author.association(:user, :last_name
'Writely') } end

这样您就可以自动创建所需的关联项。

你会想要这样的东西:

Factory.define :package do |fac|
fac.association :item
end

这将寻找一个名为 item 的 Factory 并尝试将其分配给 item= 关系。

关于ruby-on-rails - Factory Girl 使用 Ruby on Rails 进行测试,依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3783726/

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