我正在使用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
答案 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)这样的夹具,您可以使用所有相关数据加载虚拟数据。这是一种不那么脆弱的方法。