如何在工厂女孩中使用种子数据?

时间:2011-06-09 22:03:09

标签: ruby-on-rails-3 rspec factory-bot

我正在编写一个让用户在线进行测试的应用。该测试有2组18个问题,这些问题在视图中随机化。我正在尝试编写测试,以确保每个部分都能得到正确的18个问题。我想创建一个工厂,它将击中数据库并加载一系列随机问题。知道怎么做吗?我可以对文本进行硬编码,但实际上我想通过不重复seed.rb和factory.rb中的问题来测试种子数据并干掉我的代码。

这就是我所做的硬编码

Factory.define :test do |test|
    test.association :user
end

Factory.define :question do |question|
    question.phrase "2+2"
    question.answer "4"
    question.association :test
end

然后,在我的测试中,我可以写出类似的内容:

@test = Factory(:test, :user => @user)
@question = Factory(:question, :test => @test)

任何想法如何做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:3)

如果在spec / factories.rb的顶部添加以下行怎么样:

load(Rails.root.join("db", "seeds.rb"))

如果您使用的是Rails 3.1,则可以使用以下行代码。

Rails.application.load_seed

我从Can I somehow execute my db/seeds.rb file from my rails app?

得到了这个答案