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

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

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


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 

如果您只想调用种子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)这样的夹具,您可以使用所有相关数据加载虚拟数据。 这是一种不那么脆弱的方法。