如何在测试我的应用程序之前自动加载测试数据库中的数据?

时间:2011-09-18 02:32:12

标签: ruby-on-rails ruby ruby-on-rails-3 testing rspec

我正在使用Ruby on Rails 3.0.9和RSpec 2.我想在测试我的应用程序之前在 test 数据库中自动加载种子数据。也就是说,在测试启动时(当我运行测试时)我想“自动填充”“自动启动”测试数据库

如何使用种子数据填充数据库?


PS :在我读到的时候,(也许)我应该通过在/spec/spec_helper.rb文件中添加一些代码来填充测试数据库......但代码是什么?

在我的task/custom.rake文件中,我有:

namespace :test do
  desc "Boot database"
  task :boot => [:load, :seed] do
  end

  desc "Reboot database"
  task :reboot => [:purge, :boot] do
  end
end

1 个答案:

答案 0 :(得分:3)

如果你想调用种子rake任务,我会做这样的事情:

ENV['RAILS_ENV'] = 'test'
Rake::Task["db:seed"].invoke

但是,我建议使用Fixtures(http://guides.rubyonrails.org/testing.html#the-low-down-on-fixtures)。

甚至可以更好地更换像Factory Girl(https://github.com/thoughtbot/factory_girl)这样的夹具,您可以使用所有相关数据加载虚拟数据。这是一种不那么脆弱的方法。