我正在使用 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 就将两者关联在一起?