【发布时间】:2010-03-16 23:26:36
【问题描述】:
我在不同的文件中有两个工厂(post_factory.rb、comment_factory.rb)。我想创建一个有点复杂的工厂,它将为我创建一个包含相关 cmets 的帖子。我创建了第三个文件,名为complex_factory.rb,并编写了以下代码:
Factory.define :post_with_comments, :parent => :post do |post|
post.after_create { |p| Factory(:comment, :post => p) }
end
但是rake spec 引发了一个错误,指出该文件不知道发布和评论工厂。就在下一刻,我天真地在顶部写了requires:
require "post_factory.rb"
require "comment_factory.rb"
但这并没有给出任何正确的结果。也许这实际上需要寻找错误的方向?或者它们几乎无关紧要(因为注册工厂的可见性可能比我假设的更复杂)。
我错过了什么吗?有什么想法吗?
【问题讨论】:
-
不是一个真正的解决方案,但是将所有这些东西放在一个文件中怎么样?
-
按照米兰的建议,将其放在一个文件中。
-
require File.dirname(__FILE__) + "/post_factory.rb"?
标签: ruby-on-rails testing rspec factory-bot