【问题标题】:How to auto-load data in the test database before to test my application?如何在测试我的应用程序之前自动加载测试数据库中的数据?
【发布时间】:2011-09-18 02:32:12
【问题描述】:

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

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


P.S.:当我阅读时,(也许)我应该通过向/spec/spec_helper.rb 文件添加一些代码来填充测试数据库......但是什么代码以及如何? em>

在我的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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 我已经在使用 Fixtures 和 Factory Girl。我只想填充测试数据库(就像我使用开发数据库所做的那样)。
    • 为 factory_girl 加 1。您还可以将其与forgerysimilar 结合使用,以获得更多乐趣。
    猜你喜欢
    • 1970-01-01
    • 2010-12-07
    • 1970-01-01
    • 2013-04-25
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多