为什么记录不会进入rails测试数据库

时间:2013-06-25 04:24:03

标签: ruby-on-rails ruby

class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :name
      t.timestamps
    end

    # Create sample User 
    User.create  :name => "TestUser"    
  end
end

运行rake db:createrake db:migrate命令

在开发数据库中,它创建示例用户,但不在测试数据库中。我也希望这个用户在测试数据库中。有什么原因吗?

还尝试了rake db:migrate RAILS_ENV=test

2 个答案:

答案 0 :(得分:1)

首先,您应该运行以下命令rake db:test:prepare以“准备”测试数据库。

最后,如果您希望在数据库中添加新记录,建议使用以下文件db/seeds.rb

db/seeds.rb文件中:

User.create(name: "TestUser")

执行命令

rake db:seed
rake db:seed RAILS_ENV=test # for test env

答案 1 :(得分:0)

如果你想测试用户为什么不创建一个灯具或使用rspec来测试这样的东西?上面的代码是不好的做法。我会做这样的事情

迁移文件。

  def self.up
    create_table :users do |t|
      t.string :name
      t.timestamps
    end 
  end

根据你的测试堆栈,我会设置一个像这样的夹具(yml fixture

david:
 name: David Smith

您还可以将rspec与工厂女孩一起使用,这使得在rails中测试更容易。